Schema初学者进阶(二)

2002-9-9 14:51:57【作者】 畅享网 【进入论坛】
广告

Schema初学者进阶(二)


 
简化Schema的设计

在我们上次的练习中,设计Schema所使用的方法是极其简单的。由于使用层层嵌套的的定义方法,当文档非常复杂时,由于嵌套层次过深,文档将不易阅读并且难以维护。同时这种方法和过去DTD的设计结构有非常大的差异,这使得人或者机器想把DTD转换成XML Schema时会有困难。

因此,这里我们介绍另外一种非层次的设计方法,以上一章文档为例,我们首先定义文档中最基本的元素,然后在复杂元素中引用我们已经定义的基本元素的,这样使得我们的设计非常的简洁易懂。

<?xml version="1.0" encoding="utf-8"?>

<xsd:schema xmlns:xsd="
http://www.w3.org/2000/10/XMLSchema">

<!-- definition of simple type elements -->

<xsd:element name="title" type="xsd:string"/>

<xsd:element name="author" type="xsd:string"/>

<xsd:element name="name" type="xsd:string"/>

<xsd:element name="friend-of" type="xsd:string"/>

<xsd:element name="since" type="xsd:date"/>

<xsd:element name="qualification" type="xsd:string"/>

<!-- definition of attributes -->

<xsd:attribute name="isbn" type="xsd:string"/>

<!-- definition of complex type elements -->

<xsd:element name="character">

<xsd:complexType>

<xsd:sequence>

<!-- the simple type elements are referenced using the "ref" attribute -->

<xsd:element ref="name"/>

<!-- the definition of the cardinality is done when the elements are referenced -->

<xsd:element ref="friend-of" minOccurs="0" maxOccurs="unbounded"/>

<xsd:element ref="since"/>

<xsd:element ref="qualification"/>

</xsd:sequence>

</xsd:complexType>

</xsd:element>

<xsd:element name="book">

<xsd:complexType>

<xsd:sequence>

<xsd:element ref="title"/>

<xsd:element ref="author"/>

<xsd:element ref="character" minOccurs="0" maxOccurs="unbounded"/>

</xsd:sequence>

<xsd:attribute ref="isbn"/>

</xsd:complexType>

</xsd:element>

</xsd:schema>

引用的方法是非常有用的,就象是上面例子所示,我们可以先定义一些基本的元素和属性,然后在文档中的另一个位置通过引用机制进行复制。在下一章中我们将给大家展示我们如何定义"types",它使我们能够重用元素定义!

浏览:Schema初学者进阶(一)

Schema初学者进阶(三)

如果您希望与本文章的作者或其所在机构,进一步交流,请联系:畅享网 姜小姐
jill.jiang@amteam.org | 021-51096826-112 | 在线联系
老孙的IT运维管理之道[原创]用户的BSM用户的IT业务管..

从企业实际的IT运营角度来看,BSM是推动IT与业务融合,实现、改善WCNG司IT管理和治理的最佳实践之一。

吕建伟 专栏和CIO问答软件项目实施管理

现实中很少能按照正规流程来的,所以只能把流程中的各个环节拆开,个个击破,以后就可以见招拆招了。

节能与优化IT 企业CIO过冬良策

当前金融危机的影响还在继续漫延,很多企业都在苦寻过冬的良策,在这种情况下,节能与优化技术与产品无疑成为CIO们关注的首要对象,本次选题就是针对节能与优化IT来为CIO们提供过冬的良……

观08软件并购风潮 议09巨头何处生花

2008,似乎注定是不平静的一年。有人说2008是并购年。业内人士表示,在全球软件行业,并购一直是大企业谋求做大做强的捷径之一,包括甲骨文、SAP,微软等全球软件巨头都为了扩大自己……