zoukankan      html  css  js  c++  java
  • XML Schema学习札记(1)——基础总览

    内容整理自:www.w3school.com.cn

    转载自:http://www.xgezhang.com/xml_schema_1.html


    什么是XML Schema?

    • XML Schema 是基于 XML 的 DTD 替代者。
    • XML Schema 可描写叙述 XML 文档的结构,并对其进行制约和校验。
    • XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。

    它能够:

    • 定义可出如今文档中的元素
    • 定义可出如今文档中的属性
    • 定义哪个元素是子元素
    • 定义子元素的次序
    • 定义子元素的数目
    • 定义元素是否为空,或者是否可包括文本
    • 定义元素和属性的数据类型
    • 定义元素和属性的默认值以及固定值

    XML Schema 是 DTD 的继任者:

        我们觉得 XML Schema 非常快会在大部分网络应用程序中代替 DTD,理由例如以下

    • XML Schema 可针对未来的需求进行扩展
    • XML Schema 更完好,功能更强大
    • XML Schema 基于 XML 编写
    • XML Schema 支持数据类型
    • XML Schema 支持命名空间

    一个简单样例:

    1
    2
    3
    4
    5
    6
    7
    <?

    xml version="1.0"?>

    <note>
    <to>George</to>
    <from>John</from>
    <heading>Reminder</heading>
    <body>Don't forget the meeting!</body>
    </note>

    它相应的note.xsd的Schema文件例如以下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?xml version="1.0"?

    >

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3school.com.cn"
    elementFormDefault="qualified">
     
    <xs:element name="note">
        <xs:complexType>
          <xs:sequence>
        <xs:element name="to" type="xs:string"/>
        <xs:element name="from" type="xs:string"/>
        <xs:element name="heading" type="xs:string"/>
        <xs:element name="body" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
    </xs:element>
     
    </xs:schema>

        能够看到。使用XML Schema有非常多优点和优势。比方它不须要学习新的语言、可使用 XML 编辑器来编辑 Schema 文件、可使用 XML 解析器来解析 Schema 文件等。

    它还有很多其它的优点在后面介绍。

    XML Schema支持对DTD的引用,以及对XML Schema本身的引用。參看以下两个样例:

        对外部DTD的引用:

    1
    2
    3
    4
    5
    <?xml version="1.0"?>
    <note>
    ...
    </note>

        对外部XML Schema的引用:

    1
    2
    3
    4
    5
    6
    7
    8
    <?

    xml version="1.0"?>

    <note
    xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
     
    ...
    </note>



    <schema> 元素是每个 XML Schema 的根元素。

        即每个XML Schema文件都是已<schema></schema>为头和尾的,这里面能够包括属性。一个 schema 声明往往看上去类似这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0"?>
      
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.w3school.com.cn"
    elementFormDefault="qualified">
     
    ...
    ...
    </xs:schema>

         当中xmlns:xs=”http://www.w3.org/2001/XMLSchema”显示 schema 中用到的元素和数据类型来自命名空间 “http://www.w3.org/2001/XMLSchema”。

        同一时候它还规定了来自命名空间 “http://www.w3.org/2001/XMLSchema” 的元素和数据类型应该使用前缀 xs:

        targetNamespace=”http://www.w3school.com.cn” 这个片段,表示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: “http://www.w3school.com.cn”。

        xmlns=”http://www.w3school.com.cn” 这个片段表示默认的命名空间是”http://www.w3school.com.cn”。

        elementFormDefault=”qualified” 这个片段表示随意XML实例文档使用并在Schema中声明过的元素必须被命名空间所限定。



  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6791353.html
Copyright © 2011-2022 走看看