一个简单XML模式的示例
另一种替代DTD是W3C定义的图式,图式可以从字面上翻译成模式,大纲,计划,规划,等等。基本意思是将XML文档模式。
图式相对于DTD的明显的优势是,XML Schema文档本身也是一个XML文档,而不是使用一个独立的语法像DTD。这是方便用户和开发者,因为你可以使用相同的工具,而不是使用特殊工具的架构过程XML Schema和其他XML信息架构是很容易的。要明白,人知道的语法和规则的XML可以立刻理解它。图式概念的提出已久,但W3C标准刚出来不久。相应的应用支持还不完善,但是模式的采用已经成为XML开发的一个趋势。
让我们从最简单的示例开始,了解模式的语法结构:
例如,一个简单的XML文档如下所示:
Tianya moon的刀
科隆
U3000 U3000
如果XML文档的结构是以DTD的形式定义的,则可以如下所示:
<!元素图书(名称,作者)>
<!元素名称(# PCDATA)>
<!元作者(# PCDATA)>
那么,如何用模式的形式来定义它呢请看下面的代码:
元素名称类型=
< complexType名称= 'book类型>
<元素名>类型= = 'name 'String' / >
<元名称= 'author型= 'String' / >
< / complexType >
值得注意的是,在模式中,元素的定义和元素的关系的定义也被定义为整个文档的性质和内容,同时,我们应该注意模式中的元素,元素是由它的名称和内容模型决定的。这个名字是元素的名称,可以理解的人,和内容模型实际上是该元素的类型,在C++中,我们可以很容易地定义一个变量,但必须定义变量类型,变量的类型可以有多种形式,它可以是一个简单的变量(如类型,在指定C++ bool类型,int,char,双,等)也可以是非常复杂的(例如是一个结构或类),以及图式,式(型)可分为两种类型,一类是很简单的,称为简单,是一个复杂的类型,称为复杂。简单类型不包含的元素和属性(注意模式和DTD有元素属性,和相同的大道是相同的)。复杂类型不仅可以包含属性、BUT还可以将其他元素嵌套在其中,也可以与其他元素中的属性相关联。