详解XML中的模式Schema

2019-03-28 14:09:26王振洲
  •        <xs:element name='密码' type='xs:string'/>             <xs:element name='用户类型' type='xs:integer'/>     
  •       </xs:sequence>           </xs:complexType>     
  •     </xs:element>         </xs:sequence>     
  •   </xs:complexType>       </xs:element>     
  • </xs:schema>    

    清单2和清单3的都定义了User.xsd,它们的作用是相同的,都是为了验证XML文档的合法性,但定义的方法不同,清单2是使用全局组件的形式定义,而清单3使用的局部形式定义,具体的区别请看下文。


    2.2 基本用法

    上文中我们分别从作用和用法上对Schema和DTD进行了对比分析,Schema和DTD最大的区别在于Schema引入了数据类型,其它的如元素和属性的声明等类似于DTD,在下面讨论时就不再详述。

    Schema基本内容导图:
    2016624153242570.png (530×744)

    2.2.1 引用语法
    当一个模式文件建立好以后,可以用它来验证某一个XML文档的有效性,也就是说检验某个XML文档是否遵循了模式文件的定义。 那么,XML文档怎么来引用一个模式文档呢?
    Schema模型的引用更类似于前面所说的命名空间的应用方法,具体实例如下:

    XML/HTML Code复制内容到剪贴板
    1. <?xml version='1.0' encoding='utf-8'?>      <用户列表 xmlns:xsi=http://www.nishishui.org/2000/XMLSchema xsi:noNamespaceSchemaLocation='user.xsd'><!-- 引用user.xsd -->     
    2.  <用户>        <用户名>我是谁</用户名>     
    3.   <密码>123456</密码>        <用户类型>1</用户类型>     
    4.  </用户>      </用户列表>    

    2.2.2 元素类型
    (1)按照内容的不同分为简单和复杂元素,分别使用simpleType和complexType标示。
    简单元素:元素中内容只能是文本,不包含其它的元素和属性。

    XML/HTML Code复制内容到剪贴板