XML简明教程(6)什么是XML Schema

来源:互联网 发布:机顶盒的mac地址 编辑:程序博客网 时间:2024/03/28 20:33
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
XML Schema是一个基于XML的语法或Schema规范,用来定义XML文档的标记方式。XML Sc hema是一个由Microsoft建议的Schema规范,它与文档类型定义(DTD)相比具有很大的优势,而DTD是最初用来定义XML模型的Schema规范。DTD存在很多缺点,包括使用非XML 语法,不支持数据类型定义,不具有扩展性等。例如,DTD不允许把元素内容定义为另外 一个元素,或字符串。想了解更多有关DTD的内容,可以参考W3C XML建议书。 XML Schema从几个方面改善了DTD,包括使用XML语法,支持数据类型定义和名域。例如,XML Schema允许你把一个元素说明为一个integer, float,Boolean, URL等类型。

在Internet Explorer 5中的XML解析器可以解析使用DTD或XML SchemaXML文档。

如何建立XML Schema

请在下面的XML文档中找一找每个节点的Schema声明。

<class XMLns="x-Schema:classSchema.XML">
<student studentID="13429">
<name>Jane Smith</name>
<GPA>3.8</GPA>
</student>
</class>

你会注意到在上面文档中默认的名域是“x-Schema:classSchema.XML”。这告诉解析器根据URL(“classSchema.XML”)上的Schema(x-Schema)来解析整个文档。

下面是上面那个文档的完整的Schema。注意Schema的根元素中的名域声明。第一个(XML ns=”urn:Schemas-microsoft-com:XML-data”)表明这个XML文档是一个XML Schema。第二个(XMLns:dt=”urn:Schemas-microsoft-com:datatypes”)允许Schema处理者在ElementType和AttributeType声明中的type属性前加dt前缀来说明元素的类型和内容的特征 。

<Schema XMLns="urn:Schemas-microsoft-com:XML-data" XMLns:dt="urn:Schemas-mi
crosoft-com:datatypes">
<AttributeType name='studentID' dt:type='string' required='yes'/>
<ElementType name='name' content='textOnly'>
<ElementType name='GPA' content='textOnly' dt:type='float'/>
<ElementType name='student' content='mixed'>
<attribute type='studentID'/>
<element type='name'/>
<element type='GPA'/>
</ElementType>
<ElementType name='class' content='eltOnly'>
<element type='student'/>
</ElementType>
</Schema>

<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击