XSLT专业站 - 提供xslt和xml相关的资料书籍和教程  
XSLT专业站 - 提供xslt和xml相关的资料书籍和教程
网站地图  收藏本站
首页 | 热门文章 | 精彩实例 | 经典教程 | XSLT语法详解 | 资料下载 | 休闲天地 | 交流论坛
  当前位置:首页>热门文章>XML>文章内容
XML 教程
来源:XSLT.org.cn 作者:XSLT专业站 发布时间:2007-08-04  
XML 教程

XML Schema

什么是XML Schema 

W3C XML Activity Page 声明:“尽管XML1.0提供了一种机制,文档类型定义(DTD)给标记的使用加了限制,但是对XML文档的自动处理需要更严格更全面的工具。需要主要体现在对应用软件各部分的结合、文档结构、属性和数据类型等等的约束。W3C XML Schema工作组正忙于定义XML文档的结构、内容和语义。” 

微软IE5支持XML Schema,这项预先展示的技术是建立在递交给W3CXML-Data草案的基础上的。XML Schema可被认为是XML-Data草案的子集,它符合文档内容描述(DCD)提议的特点。 

IE5中的XML解析器能够根据文档类型定义(DTD)XML Schema解析XML文档。XML Schema是用来声明内容模式的基于XML的语法。它有DTD所有的功能,并且还有其他的功能如数据类型定义。

如何建立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的根元素中的名域声明。第一个(xmlns=”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-microsoft-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>

schema用“Schema”元素开头,“Schema”元素包括schema名域的声明,在本例中还包括数据类型名域的声明。Schema的内容以“AttributeType”和“ElementType”的声明开头 

<AttributeType name='studentID' dt:type='string' required='yes'/>
<ElementType name='name' content='textOnly'>
<ElementType name='GPA' content='textOnly' dt:type='float'/>

这些声明接下来的是刚声明过元素的父亲元素的“ElementType”声明。 

<ElementType name='student' content='mixed'>
     <attribute type='studentID'/>
     <element type='name'/>
     <element type='GPA'/>
</ElementType> 

这个过程继续下去,直到所有元素都已经声明了。 

不同于DTDsXML Schema允许有一个开放的内容模式,你可以进行定义数据类型、使用默认值等等操作而不必限定内容在下面的schema中,“GPA”元素的类型被定义并有一个默认值,但在“student”元素中没有其他节点被声明

<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
      <AttributeType name="scale" default="4.0"/>
      <ElementType name="GPA" content="textOnly" dt:type="float">
         <attribute type="scale"/>
      </ElementType>
      <AttributeType name="studentID"/>
     <ElementType name="student" content="eltOnly" model="open" order="many">
         <attribute type="studentID"/>
         <element type="GPA"/>
      </ElementType> 
</Schema>

 上面的schema允许你只确认你所关心的区域。这使你对文档有更多的控制,并允许你使用schema提供的一些特性而不必严格确认。 

一些说明: 

  • ElementType”和“AttributeType”声明必须放在“attribute”和“element”内容声明之前。例如,在上面的schema中,“GPA”元素的“ElementType”声明必须放在“student”元素的“ElementType”声明之前。  
  • order”属性的默认值是建立在“content”属性的值上的。当content值为“eltOnly”时,order默认值是“seq”。当content值为“mixed”时,order默认值是“many”。 


标题: XML 教程
关键字:教程 XML 数据 类型 元素 Schema 节点
共4页: 上一页 [1] [2] [3] 4 下一页
上一篇:XSL 函数介绍(4)   下一篇:XML 入门简介
  XML热点文章
·XML 入门简介
·XML 技术入门
·XML 技术预览
  XML相关文章
·XML 入门简介
·XML 技术入门
·XML 技术预览
Copyright© 2007 xslt.org.cn All rights reserved.