zoukankan      html  css  js  c++  java
  • 在XML里的XSD和DTD以及standalone的使用

    有关XML结构中的XSD和DTD以及standalone的使用

    XmlDeclaration declare= document.CreateXmlDeclaration("1.0", "utf-8", "yes"); yes为standalone的值,

    XML中声明中有个standalone

    standalone  用来表示该文件是否呼叫其它外部的文件。若值是 ”yes” 表示没有呼叫外部文件,若值是 ”no” 则表示有呼叫外部文件。默认值是 “yes”。

    这里所指的外部文件其实就是查检XML是不是有效的约束文件,或是DTD或是Schema,那这两者又有什么区别呢?

    尽管XML1.0提供了一种机制,即文档类型定义(DTD)来规范XML的格式规则。但是它天生存在一些缺点,比如,它采用了非XML的语法规则、不支持更多的数据类型、扩展性

    差等,为了克服这些缺点,XML Schema 出现了。W3C推荐在XML中使用XML Schema来代替DTD。

        XML Schema(模式) 跟DTD一样,也用于定义 XML 文档的约束。但它与DTD明显不同的是,XML Schema遵循XML语法规则,更好地支持数据类型以及命名空间。

    W3C称:XML Schema is an XML based alternative to DTD。模式在单独的文件中定义,通常扩展名为 .xsd。每个模式定义都有一个根元素 schema,该元素属于名称空

    间。schema 元素可以包含可选的属性。

        比如:

        <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified" attributeFormDefault="unqualified">

        这表示模式中使用的元素来自名称空间。

        XML 文件使用 schema 名称空间中的 schemaLocation 属性链接到对应的模式。使用 schemaLocation 属性必须定义 schema 名称空间。

    所有这些定义都出现在 XML 文档的根元素中。

        语法如下:

        <root_element  schema_namespace_definition  schema_location_definition>

        下面是一个例子:

        <Books  xmlns:xs=" Books.xsd">

        先来看看一个XML文件示例(message.xml),分别用DTD和XML Schema 描述这个文件,看看它们之间的区别:

        1、使用DTD:

    1. <?xml version="1.0" standalone="yes"?>
    2. <!DOCTYPE message [
    3. <!ELEMENT message (to,from,body)>
    4. <!ELEMENT to(#PCDATA)>
    5. <!ELEMENT from (#PCDATA)>
    6. <!ELEMENT body (#PCDATA)>
    7. ] >

       2、message的DTD结构定义:

    1. <message>
    2. <to>rose</to>
    3. <from>alex</from>
    4. <body>Hi,My Girl!</body>
    5. </message>

       3、使用XML Schema :

        message.xml:

    1.     <?xml version="1.0" standalone="no"? >
    2.     <message xmlns=http://www.example.com xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=" message.xsd">
    3.     <to>Rose</to>
    4.     <from>Alex</from>
    5.     <body>Hi,My Girl!</body>
    6.     </message>

       4、message的xsd XML Schema结构定义:    

       message.xsd:

    1.     <?xml version="1.0"?>
    2.     <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema targetNamespace=http://www.example.com xmlns="" elementFormDefault="qualified">
    3.     <xs:element name="message">
    4.     <xs:complexType>
    5.     <xs:sequence>
    6.     <xs:element name="to" type="xs:string"/>
    7.     <xs:element name="from" type="xs:string"/>
    8.     <xs:element name="body" type="xs:string"/>
    9.     </xs:sequence>
    10.     </xs:complexType>
    11.     </xs:element>
    12.     </xs:schema>
  • 相关阅读:
    AngularJS总结
    网页的颜色表示方法
    计算机中的字符编码
    计算机中的进制
    常用的HTML 标签二
    常用的HTML标签
    常用的字符实体标记
    一个请求的访问流程
    http请求访问过程
    codeforces 269C Flawed Flow(网络流)
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/5558940.html
Copyright © 2011-2022 走看看