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中声明过的元素必须被命名空间所限定。



  • 相关阅读:
    转: CEF嵌入到单文档mfc
    浅谈C++多态性
    C++面试整理1
    面试汇总
    【转】一些经典的笔试题
    C# 委托
    搭建Nuget
    thinkphp框架之模型(数据库查询)
    利用csc.exe 手动编译C#程序
    css
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6791353.html
Copyright © 2011-2022 走看看