首页 > 资讯 > 网站设计
XML简明教程第6课 使用XML Schema
发布时间:2005-03-18   浏览次数:1154237
[ 来源:中国站长学院 |作者:无从考证 ] 什么是XMLSchema?XMLSchema是一个基于XML的语法或schema规范,用来定义XML文档的标记方式。XMLSchema是一个由Microsoft建议的schema规范,它与文档类型定义(DTD)相比具有很大的优势,而DTD是最初用来定义XML模型的schema规范。DTD存在很多缺点,包括使用非XML语法,不支持数据类型定义,不具有扩展性等。例如,DTD不允许把元素内容定义为另外一个元素,或字符串。想了解更多有关DTD的内容,可以参考W3CXML建议书。XMLSchema从几个方面改善了DTD,包括使用XML语法,支持数据类型定义和名域。例如,XMLSchema允许你把一个元素说明为一个integer,float,Boolean,URL等类型。在InternetExplorer5中的XML解析器可以解析使用DTD或XMLSchema的XML文档。如何建立XMLSchema?请在下面的XML文档中找一找每个节点的schema声明。JaneSmith3.8你会注意到在上面文档中默认的名域是“x-schema:classSchema.xml”。这告诉解析器根据URL(“classSchema.xml”)上的schema(x-schema)来解析整个文档。下面是上面那个文档的完整的schema。注意schema的根元素中的名域声明。个(xmlns=”urn:schemas-microsoft-com:xml-data”)表明这个XML文档是一个XMLSchema。第二个(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)允许schema处理者在ElementType和AttributeType声明中的type属性前加dt前缀来说明元素的类型和内容的特征。用来定义元素和属性的声明元素如下所示:元素说明ElementType把类型和条件赋给一个元素,可以包含子元素AttributeType把类型和条件赋给一个属性attribute声明以前定义过的属性类型可以出现在名为ElementType的元素的作用域中element声明以前定义过的元素类型可以出现在名为ElementType的元素的作用域中 Schema的内容以最深层的元素的“AttributeType”和“ElementType”声明开头。ElementType声明后接着是它的属性和子元素,如果一个元素有属性或子元素,必须把这种方法包含在它的ElementType声明中,或者是必须在它们自己的ElementType或AttributeType声明中进行前导声明。不同于DTDs,XMLSchema允许有一个开放的内容模式,你可以进行定义数据类型、使用默认值等等操作而不必限定内容。在下面的schema中,元素的类型被定义并有一个默认值,但在元素中没有其他节点被声明。上面的schema允许你只验证你所关心的区域,这使你对文档的验证级别有更多的控制,并允许你使用schema提供的一些特性而不必严格确认。尝试一下!试着处理一下下面的XML文档的schema。FidelmaMcGinn425-655-33935523918shovel39.991998-10-231998-11-03如果你处理完schema,在XMLValidator中运行.下载MSDNOnline的区域中提供了一套XMLsamplefiles,包括一个有相关schema的XML文档。下载这些示例程序可以与XML文档和schema一起运行。如果你想要根据一个schema来测试XML的有效性,可以从XMLValidator处下载文档或查看MimeTypeViewer中的XML文件。一些说明:ElementType和AttributeType声明必须放在attribute和element内容声明之前。例如,在上面的schema中,元素的ElementType声明必须放在元素的Element Type声明之前。 order属性的默认值是建立在content属性的值上的。当content值为“eltOnly”时,order默认值是seq。当content值为“mixed”时,order默认值是“many”。see如果想了解有关这些缺省值的信息,可以查看XMLSchemaReference。 来源:http://edu.chinaz.com
业务咨询

Copyright 2003 - 2023 huinet.cn All Rights Reserved.
慧网公司 版权所有