📄 schem~%3.htm
字号:
</lexicalRepresentation>
</datatype></span></pre>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">例三</font>.zip<font lang="ZH-CN">数据类型</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><elementType name="zip">
<datatypeRef name="zipCode"/>
</elementType></span></pre>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">有了上面的基本类型</font>,<font lang="ZH-CN">我们可以构造更复杂的数据类型</font>.<font lang="ZH-CN">比如说</font><address>.</span></p>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">例四</font>.
Schema<font lang="ZH-CN">定义的</font>Address<font lang="ZH-CN">定义</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><elementType name="address">
<sequence>
<elementTypeRef name="company" minOccur="0" maxOccur="1"/>
<elementTypeRef name="name" minOccur="1" maxOccur="1"/>
<elementTypeRef name="street" minOccur="1" maxOccur="2"/>
<elementTypeRef name="city" minOccur="1" maxOccur="1"/>
<elementTypeRef name="state" minOccur="1" maxOccur="1"/>
<elementTypeRef name="zip" minOccur="1" maxOccur="1"/>
</sequence>
</elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">这个例子同前面的例子不同</font>.<font lang="ZH-CN">它用其他的元素定义它的内容</font>.<font lang="ZH-CN">它以</font><sequence><font lang="ZH-CN">开始</font>,<font lang="ZH-CN">有点像</font>DTD<font lang="ZH-CN">中的”</font>,<font lang="ZH-CN">”</font>.<font lang="ZH-CN">他表示内部的元素必须按顺序排列</font>.
<sequence><font lang="ZH-CN">内部应用到了其他元素</font>.<font lang="ZH-CN">这些元素必须在文件中的其他地方声明</font>.<address><font lang="ZH-CN">在</font>DTD<font lang="ZH-CN">中的等价声明如下</font>:</span></p>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">例五</font>.
DTD<font lang="ZH-CN">中</font><address><font lang="ZH-CN">的声明</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><!ELEMENT address
(company?,name, street+, city, state, zip)></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">必须指出的是</font>,<font face="宋体" lang="ZH-CN">这并不完全等价</font>.<font face="宋体" lang="ZH-CN">在</font>DTD<font face="宋体" lang="ZH-CN">定义的类型中我们可有任意多个</font>"street",<font face="宋体" lang="ZH-CN">而在</font>XML
Schema<font face="宋体" lang="ZH-CN">定义的类型中我们只能有一个或是两个</font>"street".<font face="宋体" lang="ZH-CN">如果您想要不止一个</font>address,<font face="宋体" lang="ZH-CN">在</font>DTD<font face="宋体" lang="ZH-CN">中您要用到</font>parameter
<br>
entity(<font face="宋体" lang="ZH-CN">实体</font>).<font face="宋体" lang="ZH-CN">请见下例</font>:</span></p>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">例六</font>.
DTD<font lang="ZH-CN">中含</font>parameter entity(<font lang="ZH-CN">参数体</font>)<font lang="ZH-CN">的</font>address</span></p>
<pre align="JUSTIFY"><span class="normal105"><!ENTITY % address
"company?, name, street+, city, state, zip">
<!ELEMENT billing.address (%address;)>
<!ELEMENT shipping.address (%address;)></span></pre>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">在</font>XML
Schema<font lang="ZH-CN">中您要用到</font>archetype: <font lang="ZH-CN">请见下例</font>:</span></p>
<p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">例七</font>.
XML Schema<font lang="ZH-CN">中含</font>Archetype (<font lang="ZH-CN">原型</font>)<font lang="ZH-CN">的</font>address</span></p>
<pre align="JUSTIFY"><span class="normal105"><archetype name="address" model="refinable">
<sequence>
<elementTypeRef name="company" minOccur="0" maxOccur="1"/>
<elementTypeRef name="name" minOccur="1" maxOccur="1"/>
<elementTypeRef name="street" minOccur="1" maxOccur="2"/>
<elementTypeRef name="city" minOccur="1" maxOccur="1"/>
<elementTypeRef name="state" minOccur="1" maxOccur="1"/>
<elementTypeRef name="zip" minOccur="1" maxOccur="1"/>
</sequence>
</archetype>
<elementType name="billing.address">
<archetypeRef name="address"/>
</elementType>
<br><elementType name="shipping.address">
<archetypeRef name="address"/>
</elementType></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">这个例子给我们展示了</font>archetype<font face="宋体" lang="ZH-CN">的两项优势</font>:</span></p>
<p align="JUSTIFY"><span class="normal105"> 1. archetype<font face="宋体" lang="ZH-CN">是可以</font>refinable(<font face="宋体" lang="ZH-CN">更新的</font>).<br>
2. billing.address<font face="宋体" lang="ZH-CN">和</font>hipping.address<font face="宋体" lang="ZH-CN">都是</font>address,<font face="宋体" lang="ZH-CN">这种关系是非常明显的</font>.<font face="宋体" lang="ZH-CN">而这在</font>DTD<font face="宋体" lang="ZH-CN">中要通过</font>parser(<font face="宋体" lang="ZH-CN">解析器</font>)<font face="宋体" lang="ZH-CN">展开</font>parameter
entity (<font face="宋体" lang="ZH-CN">参数体</font>)<font face="宋体" lang="ZH-CN">做到</font>:</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><!ELEMENT billing.address (company?,name, street+, city, state, zip)>
<!ELEMENT shipping.address (company?, name, street+, city, state, zip)></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">由于内容过于复杂</font>,<font face="宋体" lang="ZH-CN">解析器很难判断两个元素是否相同</font>.<font face="宋体" lang="ZH-CN">及时知道</font>,<font face="宋体" lang="ZH-CN">也不知道这是不是只是巧合</font>.</span></p>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">下面是一个更加复杂的例子</font>:</span></p>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">例八</font>.<font face="宋体" lang="ZH-CN">定货单</font>.</span></p>
<p align="JUSTIFY"><span class="normal105"><!DOCTYPE purchase.order
SYSTEM "po.dtd"><br>
<purchase.order><br>
<date>16 June 1967</date><br>
<billing.address><br>
<name>Namron H. Slaw</name><br>
<street>256 Eight Bit Lane</street><br>
<city>East Yahoo</city><br>
<state>MA</state><br>
<zip>12481-6326</zip><br>
</billing.address><br>
<items><br>
<item><br>
<quantity>3</quantity><br>
<product.number>248</product.number><br>
<description>Decorative Widget, Red, Large</description><br>
<unitcost>19.95</unitcost><br>
</item><br>
<item><br>
<quantity>1</quantity><br>
<product.number>1632</product.number><br>
<description>Packed electron storage container, AA, 4-pack</description><br>
<unitcost>4.95</unitcost><br>
</item><br>
</items><br>
</purchase.order></span></p>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">例九</font>.
<font face="宋体" lang="ZH-CN">定货单的</font>Schema</span></p>
<p align="JUSTIFY"><span class="normal105"><!DOCTYPE schema SYSTEM
"o:/reference/w3c/schema/structures.dtd"><br>
<schema></span></p>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">因为我们没有</font>schema<font face="宋体" lang="ZH-CN">的处理器</font>,<font face="宋体" lang="ZH-CN">我们要给</font>schema<font face="宋体" lang="ZH-CN">用</font>DTD<font face="宋体" lang="ZH-CN">说明</font>.Schema<font face="宋体" lang="ZH-CN">都是由</font><schema><font face="宋体" lang="ZH-CN">开头的</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><archetype name="address" model="refinable">
<sequence>
<elementTypeRef name="company" minOccur="0" maxOccur="1"/>
<elementTypeRef name="name" minOccur="1" maxOccur="1"/>
<elementTypeRef name="street" minOccur="1" maxOccur="2"/>
<elementTypeRef name="city" minOccur="1" maxOccur="1"/>
<elementTypeRef name="state" minOccur="1" maxOccur="1"/>
<elementTypeRef name="zip" minOccur="1" maxOccur="1"/>
</sequence>
</archetype></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">上面我们用</font>architype<font face="宋体" lang="ZH-CN">的方法定义了</font>addresses,<font face="宋体" lang="ZH-CN">我们下面可以用它来定义别的</font>address<font face="宋体" lang="ZH-CN">元素</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><elementType name="billing.address">
<archetypeRef name="address"/>
</elementType>
<br><elementType name="shipping.address">
<archetypeRef name="address"/>
</elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">现在我们用已有的</font>archetype<font face="宋体" lang="ZH-CN">定义</font><billing.address><font face="宋体" lang="ZH-CN">和</font><shipping.address>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><elementType name="items">
<elementTypeRef name="item" minOccur="1"/>
</elementType></span></pre>
<pre align="JUSTIFY"><span class="normal105"><elementType name="item">
<sequence>
<elementTypeRef name="quantity" minOccur="1" maxOccur="1"/>
<elementTypeRef name="product.number" minOccur="1" maxOccur="1"/>
<elementTypeRef name="description" minOccur="1" maxOccur="1"/>
<elementTypeRef name="unitcost" minOccur="1" maxOccur="1"/>
</sequence>
</elementType></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">每一个</font><item><font face="宋体" lang="ZH-CN">都包括了一个</font><quantity>,<product.number>,<description><font face="宋体" lang="ZH-CN">和<</font>unitcost>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><elementType name="purchase.order"><br> <sequence><br> <elementTypeRef name="date" minOccur="1" maxOccur="1"/><br></font> <font size="3"><elementTypeRef name="billing.address" minOccur="1" maxOccur="1"/><br> <elementTypeRef name="shipping.address" minOccur="0" maxOccur="1"/><br> <elementTypeRef name="items" minOccur="1" maxOccur="1"/><br> </sequence><br></elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">类似的</font>,<purchase.order>
<font face="宋体" lang="ZH-CN">包括了一个</font>date,billing address,shipping
address,<font face="宋体" lang="ZH-CN">还有一些</font>item.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><elementType name="company"><br> </font> <font size="3"><mixed/><br></elementType><br><elementType name="name"><br> <mixed/><br></elementType><br><elementType name="street"><br> <mixed/><br></elementType><br><elementType name="city"></font> <br> <font size="3"> <mixed/></font> <br><font size="3"></elementType></font> <br><font size="3"><elementType name="state"></font> <br> <font size="3"><mixed/>
</elementType><br><br><datatype name="zipCode"></font>
<font size="3"><basetype name="string"/><br> <lexicalRepresentation><br> <lexical>99999</lexical><br> <lexical>99999-9999</lexical><br> </lexicalRepresentation><br></datatype><br><br><elementType name="zip"></font> <br> <font size="3"><datatypeRef name="zipCode"/></font> <br><font size="3"></elementType></font> <font size="3">
<elementType name="product.number"></font>
<font size="3"><mixed/><br></elementType><br><elementType name="description"></font>
<font size="3"><mixed/><br></elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">绝大多数</font>address<font face="宋体" lang="ZH-CN">的元素是字符数据</font>,<product.number><font face="宋体" lang="ZH-CN">和</font><description>
<font face="宋体" lang="ZH-CN">也不例外</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><datatype name="quantityType"><br> </font> <font size="3"><basetype name="integer"/><br> <minExclusive>0</minExclusive><br></datatype><br><elementType name="quantity"><br> <datatypeRef name="quantityType"/><br></elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><quantity><font face="宋体" lang="ZH-CN">元素的内容被定义为大于零的整数</font>.</span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><datatype name="currency"><br> </font> <font size="3"><basetype name="decimal"/><br> <precision>8</precision><br> <scale>2</scale><br></datatype><br><br><elementType name="unitcost"></font> <br> <font size="3"><datatypeRef name="currency"/></font>
<font size="3"></elementType></font></span></pre>
<p align="JUSTIFY"><span class="normal105"><unitcost><font face="宋体" lang="ZH-CN">的内容代表了价格</font>.<font face="宋体" lang="ZH-CN">为了合理</font>,<font face="宋体" lang="ZH-CN">我们定义它在小数点前有六位</font>,
<font face="宋体" lang="ZH-CN">小数点后有两位</font></span></p>
<pre align="JUSTIFY"><span class="normal105"><font size="3"><elementType name="date"><br></font> <font size="3"><datatypeRef name="dateTime"/><br></elementType></font>
<font size="3"></schema></font></span></pre>
<pre align="left"> </pre>
</div>
</td>
</tr>
<tr>
<td colspan="3"><font face="宋体" lang="ZH-CN" size=3> </font> <rev></rev><font face="宋体" lang="ZH-CN" size=3></font>
<hr size="1">
<p align="center"><font face="宋体" lang="ZH-CN">[<a href="#top">返回标题</a>][<a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm">返回资源</a>][<a href="../../default.asp" tppabs="http://www.xml.org.cn:8188/default.asp">返回首页</a>][<a href="mailto:xmlteam@egroups.com">欢迎投稿</a>]</font></p>
<p align="center">最后更新:1999年8月4日<br>
<font color="#FF0033" size="-1">本站点所刊文章版权,均归本站点所有。署名作者拥有其著作权。<br>
未经</font><font color="#FF0033"><a href="mailto:xmlteam@egroups.com"><font color="#6666FF" size="-1">允许</font></a></font><font color="#FF0033" size="-1">,不得随意转载,违者必究!!</font>
</p>
</td>
</tr>
</table>
<h2 ALIGN="CENTER"> </h2>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"> </P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -