⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 schem~%3.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 2 页
字号:
     </lexicalRepresentation>
&lt;/datatype&gt;</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">&lt;elementType name="zip"&gt;
    &lt;datatypeRef name="zipCode"/&gt;
&lt;/elementType&gt;</span></pre>
        <p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">有了上面的基本类型</font>,<font lang="ZH-CN">我们可以构造更复杂的数据类型</font>.<font lang="ZH-CN">比如说</font>&lt;address&gt;.</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">&lt;elementType name="address"&gt;
   &lt;sequence&gt;
           &lt;elementTypeRef name="company" minOccur="0"            maxOccur="1"/&gt;
           &lt;elementTypeRef name="name" minOccur="1" maxOccur="1"/&gt;
           &lt;elementTypeRef name="street" minOccur="1"            maxOccur="2"/&gt;
           &lt;elementTypeRef name="city" minOccur="1" maxOccur="1"/&gt;
           &lt;elementTypeRef name="state" minOccur="1" maxOccur="1"/&gt;
           &lt;elementTypeRef name="zip" minOccur="1" maxOccur="1"/&gt;
           &lt;/sequence&gt;
           &lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105"><font lang="ZH-CN">这个例子同前面的例子不同</font>.<font lang="ZH-CN">它用其他的元素定义它的内容</font>.<font lang="ZH-CN">它以</font>&lt;sequence&gt;<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>. 
          &lt;sequence&gt;<font lang="ZH-CN">内部应用到了其他元素</font>.<font lang="ZH-CN">这些元素必须在文件中的其他地方声明</font>.&lt;address&gt;<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>&lt;address&gt;<font lang="ZH-CN">的声明</font>.</span></p>
        <pre align="JUSTIFY"><span class="normal105"><font size="3">&lt;!ELEMENT address
(company?,name, street+, city, state, zip)&gt;</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">&lt;!ENTITY % address
"company?, name, street+, city, state, zip"&gt;
&lt;!ELEMENT billing.address (%address;)&gt;
&lt;!ELEMENT shipping.address (%address;)&gt;</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">&lt;archetype name="address" model="refinable"&gt;
  &lt;sequence&gt;
     &lt;elementTypeRef name="company" minOccur="0" maxOccur="1"/&gt;
     &lt;elementTypeRef name="name" minOccur="1" maxOccur="1"/&gt;
     &lt;elementTypeRef name="street" minOccur="1" maxOccur="2"/&gt;
     &lt;elementTypeRef name="city" minOccur="1" maxOccur="1"/&gt;
     &lt;elementTypeRef name="state" minOccur="1" maxOccur="1"/&gt;
     &lt;elementTypeRef name="zip" minOccur="1" maxOccur="1"/&gt;
  &lt;/sequence&gt;
&lt;/archetype&gt;

&lt;elementType name="billing.address"&gt;
   &lt;archetypeRef name="address"/&gt;
&lt;/elementType&gt;
<br>&lt;elementType name="shipping.address"&gt;
    &lt;archetypeRef name="address"/&gt;
&lt;/elementType&gt;</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">&lt;!ELEMENT billing.address (company?,name, street+, city, state, zip)&gt;
&lt;!ELEMENT shipping.address (company?, name, street+, city, state, zip)&gt;</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">&lt;!DOCTYPE purchase.order 
          SYSTEM "po.dtd"&gt;<br>
          &lt;purchase.order&gt;<br>
          &lt;date&gt;16 June 1967&lt;/date&gt;<br>
          &lt;billing.address&gt;<br>
          &lt;name&gt;Namron H. Slaw&lt;/name&gt;<br>
          &lt;street&gt;256 Eight Bit Lane&lt;/street&gt;<br>
          &lt;city&gt;East Yahoo&lt;/city&gt;<br>
          &lt;state&gt;MA&lt;/state&gt;<br>
          &lt;zip&gt;12481-6326&lt;/zip&gt;<br>
          &lt;/billing.address&gt;<br>
          &lt;items&gt;<br>
          &lt;item&gt;<br>
          &lt;quantity&gt;3&lt;/quantity&gt;<br>
          &lt;product.number&gt;248&lt;/product.number&gt;<br>
          &lt;description&gt;Decorative Widget, Red, Large&lt;/description&gt;<br>
          &lt;unitcost&gt;19.95&lt;/unitcost&gt;<br>
          &lt;/item&gt;<br>
          &lt;item&gt;<br>
          &lt;quantity&gt;1&lt;/quantity&gt;<br>
          &lt;product.number&gt;1632&lt;/product.number&gt;<br>
          &lt;description&gt;Packed electron storage container, AA, 4-pack&lt;/description&gt;<br>
          &lt;unitcost&gt;4.95&lt;/unitcost&gt;<br>
          &lt;/item&gt;<br>
          &lt;/items&gt;<br>
          &lt;/purchase.order&gt;</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">&lt;!DOCTYPE schema SYSTEM 
          "o:/reference/w3c/schema/structures.dtd"&gt;<br>
          &lt;schema&gt;</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>&lt;schema&gt;<font face="宋体" lang="ZH-CN">开头的</font>.</span></p>
        <pre align="JUSTIFY"><span class="normal105">&lt;archetype name="address" model="refinable"&gt;
 &lt;sequence&gt;
   &lt;elementTypeRef name="company" minOccur="0" maxOccur="1"/&gt;
   &lt;elementTypeRef name="name" minOccur="1" maxOccur="1"/&gt;
   &lt;elementTypeRef name="street" minOccur="1" maxOccur="2"/&gt;
   &lt;elementTypeRef name="city" minOccur="1" maxOccur="1"/&gt;
   &lt;elementTypeRef name="state" minOccur="1" maxOccur="1"/&gt;
   &lt;elementTypeRef name="zip" minOccur="1" maxOccur="1"/&gt;
 &lt;/sequence&gt;
&lt;/archetype&gt;</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">&lt;elementType name="billing.address"&gt;
   &lt;archetypeRef name="address"/&gt;
&lt;/elementType&gt;
<br>&lt;elementType name="shipping.address"&gt;
   &lt;archetypeRef name="address"/&gt;
&lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">现在我们用已有的</font>archetype<font face="宋体" lang="ZH-CN">定义</font>&lt;billing.address&gt;<font face="宋体" lang="ZH-CN">和</font>&lt;shipping.address&gt;.</span></p>
        <pre align="JUSTIFY"><span class="normal105">&lt;elementType name="items"&gt;
   &lt;elementTypeRef name="item" minOccur="1"/&gt;
&lt;/elementType&gt;</span></pre>
        <pre align="JUSTIFY"><span class="normal105">&lt;elementType name="item"&gt;
 &lt;sequence&gt;
    &lt;elementTypeRef name="quantity" minOccur="1"  maxOccur="1"/&gt;
    &lt;elementTypeRef name="product.number" minOccur="1" maxOccur="1"/&gt;
    &lt;elementTypeRef name="description" minOccur="1" maxOccur="1"/&gt;
    &lt;elementTypeRef name="unitcost" minOccur="1" maxOccur="1"/&gt;
 &lt;/sequence&gt;
&lt;/elementType&gt;</span></pre>
        <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">每一个</font>&lt;item&gt;<font face="宋体" lang="ZH-CN">都包括了一个</font>&lt;quantity&gt;,&lt;product.number&gt;,&lt;description&gt;<font face="宋体" lang="ZH-CN">和&lt;</font>unitcost&gt;.</span></p>
        <pre align="JUSTIFY"><span class="normal105"><font size="3">&lt;elementType name="purchase.order"&gt;<br> &lt;sequence&gt;<br>   &lt;elementTypeRef name="date" minOccur="1"  maxOccur="1"/&gt;<br></font>   <font size="3">&lt;elementTypeRef name="billing.address"   minOccur="1" maxOccur="1"/&gt;<br>   &lt;elementTypeRef name="shipping.address"   minOccur="0" maxOccur="1"/&gt;<br>   &lt;elementTypeRef name="items" minOccur="1"  maxOccur="1"/&gt;<br> &lt;/sequence&gt;<br>&lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">类似的</font>,&lt;purchase.order&gt; 
          <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">&lt;elementType name="company"&gt;<br> </font> <font size="3">&lt;mixed/&gt;<br>&lt;/elementType&gt;<br>&lt;elementType name="name"&gt;<br>  &lt;mixed/&gt;<br>&lt;/elementType&gt;<br>&lt;elementType name="street"&gt;<br>  &lt;mixed/&gt;<br>&lt;/elementType&gt;<br>&lt;elementType name="city"&gt;</font> <br> <font size="3"> &lt;mixed/&gt;</font> <br><font size="3">&lt;/elementType&gt;</font> <br><font size="3">&lt;elementType name="state"&gt;</font> <br>  <font size="3">&lt;mixed/&gt;
&lt;/elementType&gt;<br><br>&lt;datatype name="zipCode"&gt;</font> 
 <font size="3">&lt;basetype name="string"/&gt;<br> &lt;lexicalRepresentation&gt;<br>  &lt;lexical&gt;99999&lt;/lexical&gt;<br>  &lt;lexical&gt;99999-9999&lt;/lexical&gt;<br> &lt;/lexicalRepresentation&gt;<br>&lt;/datatype&gt;<br><br>&lt;elementType name="zip"&gt;</font> <br>  <font size="3">&lt;datatypeRef name="zipCode"/&gt;</font> <br><font size="3">&lt;/elementType&gt;</font> <font size="3">
&lt;elementType name="product.number"&gt;</font> 
   <font size="3">&lt;mixed/&gt;<br>&lt;/elementType&gt;<br>&lt;elementType name="description"&gt;</font> 
   <font size="3">&lt;mixed/&gt;<br>&lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105"><font face="宋体" lang="ZH-CN">绝大多数</font>address<font face="宋体" lang="ZH-CN">的元素是字符数据</font>,&lt;product.number&gt;<font face="宋体" lang="ZH-CN">和</font>&lt;description&gt; 
          <font face="宋体" lang="ZH-CN">也不例外</font>.</span></p>
        <pre align="JUSTIFY"><span class="normal105"><font size="3">&lt;datatype name="quantityType"&gt;<br> </font> <font size="3">&lt;basetype name="integer"/&gt;<br>  &lt;minExclusive&gt;0&lt;/minExclusive&gt;<br>&lt;/datatype&gt;<br>&lt;elementType name="quantity"&gt;<br>  &lt;datatypeRef name="quantityType"/&gt;<br>&lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105">&lt;quantity&gt;<font face="宋体" lang="ZH-CN">元素的内容被定义为大于零的整数</font>.</span></p>
        <pre align="JUSTIFY"><span class="normal105"><font size="3">&lt;datatype name="currency"&gt;<br> </font> <font size="3">&lt;basetype name="decimal"/&gt;<br>  &lt;precision&gt;8&lt;/precision&gt;<br>  &lt;scale&gt;2&lt;/scale&gt;<br>&lt;/datatype&gt;<br><br>&lt;elementType name="unitcost"&gt;</font> <br>  <font size="3">&lt;datatypeRef name="currency"/&gt;</font> 
<font size="3">&lt;/elementType&gt;</font></span></pre>
        <p align="JUSTIFY"><span class="normal105">&lt;unitcost&gt;<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">&lt;elementType name="date"&gt;<br></font> <font size="3">&lt;datatypeRef name="dateTime"/&gt;<br>&lt;/elementType&gt;</font>
<font size="3">&lt;/schema&gt;</font></span></pre>
        <pre align="left">&nbsp;</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">&nbsp;</h2>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3> 
<P ALIGN="JUSTIFY">&nbsp;</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT> 
</BODY>
</HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -