别的一个替代DTD的就是W3C定义的Schema,Schema从字面意义上来讲,能够翻译成形式、纲要、设计、计划等等。它的基础意义就是说为XML文档制订一种形式。
Schema相对于DTD的显著优点是XML Schema文档自身也是XML文档,而不是像DTD一样运用自成一体的语法。这就方便了用户和开发者,由于能够运用雷同的东西来处置惩罚XML Schema和其他XML信息,而没必要特地为Schema运用特别东西。Schema简朴易懂,晓得XML语法、划定规矩的人都能够马上明白它。Schema的观点提出已久,但W3C的规范近来才出来,响应的运用支撑还没有完美,但采纳Schema已成为XML生长的一个趋向。
起首我们照样从最简朴的例子动手来进修Schema的语法构造:
比方一个简朴的XML文档以下:
<书籍> <称号>天涯明月刀 <作者>古龙
假如用DTD的情势来定义该XML文档构造的话,能够以下所示:
<!ELEMENT 书籍 (称号, 作者)> <!ELEMENT 称号 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> 那末用Schema情势怎样定义呢?见下面的代码: <element name='书籍' type='书籍范例'/> <complexType name='书籍范例'> <element name='称号' type='string'/> <element name='作者' type='string'/> </complexType>
能够注重的一点是,在Schema中,也是经由过程对元素的定义和元素关联的定义来完成对全部文档性子和内容的定义。同时须要注重的是,在Schema中,元素是经由过程它的名字和内容模子来肯定,称号就是该元素的名字,这个人人都能够明白,而内容模子实际上就是示意元素的范例。就象在C++中,我们能够随意定义一个变量,然则必需定义变量的范例,变量的范例便可能有多种情势,它能够是一个简朴的变量(如C++内部指定的范例,bool,int,double,char等等),也能够是很庞杂的范例(比方是一个struct或许是class),在Schema中也是一样,范例(type)能够分为两种情势,一种是异常简朴的范例,被称为simple,一种是庞杂的范例,被称为complex。简朴范例不能包括元素和属性(注重在Schema中和DTD中一样,都有元素属性的说法,大道雷同)。而庞杂范例不仅能够包括属性,而且能够在个中嵌套其他的元素,或许能够和其他元素中的属性相关联。
以上就是一个简朴的XML Schema的示例代码详解的内容,更多相关内容请关注ki4网(www.ki4.cn)!