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

📄 xml~nt.htm

📁 这是一本关于XML的学习的书
💻 HTM
📖 第 1 页 / 共 3 页
字号:
      <h4 align="JUSTIFY"><font lang="ZH-CN"><span class="h4">如何访问经过类型定义的</span></font><span class="h4">XML<font lang="ZH-CN">值?</font></span></h4>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">可以通过</span></font><span class="normal10">XML<font lang="ZH-CN">对象模式访问经过类型定义的数据。就好象你能根据元素节点的节点值性质找到元素值一样,你能根据元素本身的节点类型值找到经过类型定义的元素值。</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal10"><font lang="ZH-CN">例如,考虑一下下面的</font>XML<font lang="ZH-CN">文档:</font></span></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;?xml version="1.0"?&gt;
&lt;weather xmlns="x-schema:weatherSchema.xml"&gt;
      &lt;date&gt;1970-09-30&lt;/date&gt;
      &lt;degrees&gt;67.5&lt;/degrees&gt;
&lt;/weather&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal10"><font lang="ZH-CN">“</font>weatherSchema.xml<font lang="ZH-CN">”是下面这个文件:</font></span></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;Schema xmlns="urn:schemas-microsoft-com:xml-data"xmlns:dt="urn:schemas-microsoft-com:datatypes"&gt;
       &lt;ElementType name="date" content="textOnly" dt:type="date"/&gt;
       &lt;ElementType name="degrees" content="textOnly" dt:type="float"/&gt;
       &lt;ElementType name="weather" content="eltOnly"/&gt;
           &lt;element type="date"/&gt;
           &lt;element type="degrees"/&gt;
       &lt;/ElementType&gt;
&lt;/Schema&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">如果你要处理“</span></font><span class="normal10">degrees<font lang="ZH-CN">”这个元素(</font><i>xmlDocument.documentElement.childNodes.item(1)</i><font lang="ZH-CN">),你可以根据节点类型值来访问它的值(</font><i>xmlDocument.documentElement.childNodes.item(1).nodeTypedValue</i><font lang="ZH-CN">)</font></span><font face="宋体" lang="ZH-CN" size=3>。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><a href="#head"><font face="宋体" lang="ZH-CN" size="3">返回</font></a></p>
      <h3 align="JUSTIFY"></h3>
      <h3 align="JUSTIFY">XML Schema<a name="p8"></a></h3>
      <p align="JUSTIFY"></p>
      <h4 align="JUSTIFY"><font lang="ZH-CN"><span class="h4">什么是</span></font><span class="h4">XML 
        Schema<font lang="ZH-CN">?</font></span></h4>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal10">W3C XML Activity Page <font lang="ZH-CN">声明:“尽管</font>XML1.0<font lang="ZH-CN">提供了一种机制,文档类型定义(</font>DTD<font lang="ZH-CN">)给标记的使用加了限制,但是对</font>XML<font lang="ZH-CN">文档的自动处理需要更严格更全面的工具。需要主要体现在对应用软件各部分的结合、文档结构、属性和数据类型等等的约束。</font>W3C 
        XML Schema<font lang="ZH-CN">工作组正忙于定义</font>XML<font lang="ZH-CN">文档的结构、内容和语义。”</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">微软</span></font><span class="normal10">IE5<font lang="ZH-CN">支持</font>XML 
        Schema<font lang="ZH-CN">,这项预先展示的技术是建立在递交给</font>W3C<font lang="ZH-CN">的</font>XML-Data<font lang="ZH-CN">草案的基础上的。</font>XML 
        Schema<font lang="ZH-CN">可被认为是</font>XML-Data<font lang="ZH-CN">草案的子集,它符合文档内容描述(</font>DCD<font lang="ZH-CN">)提议的特点。</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal10">IE5<font lang="ZH-CN">中的</font>XML<font lang="ZH-CN">解析器能够根据文档类型定义</font>(DTD)<font lang="ZH-CN">或</font>XML 
        Schema<font lang="ZH-CN">解析</font>XML<font lang="ZH-CN">文档。</font>XML 
        Schema<font lang="ZH-CN">是用来声明内容模式的基于</font>XML<font lang="ZH-CN">的语法。它有</font>DTD<font lang="ZH-CN">所有的功能,并且还有其他的功能如数据类型定义。</font></span></p>
      <h4 align="JUSTIFY"></h4>
      <h4 align="JUSTIFY"><font lang="ZH-CN"><span class="h4">如何建立</span></font><span class="h4">XML 
        Schema<font lang="ZH-CN">?</font></span></h4>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">请在下面的</span></font><span class="normal10">XML<font lang="ZH-CN">文档中找一找每个节点的</font>schema<font lang="ZH-CN">声明。</font></span></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;class xmlns="x-schema:classSchema.xml"&gt;
      &lt;student studentID="13429"&gt;
         &lt;name&gt;Jane Smith&lt;/name&gt;
         &lt;GPA&gt;3.8&lt;/GPA&gt;
     &lt;/student&gt;
&lt;/class&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">你会注意到在上面文档中默认的名域是“</span></font><span class="normal10">x-schema:classSchema.xml<font lang="ZH-CN">”。这告诉解析器根据</font>URL(“classSchema.xml”)<font lang="ZH-CN">上的</font>schema(x-schema)<font lang="ZH-CN">来解析整个文档。</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">下面是上面那个文档的完整的</span></font><span class="normal10">schema<font lang="ZH-CN">。注意</font>schema<font lang="ZH-CN">的根元素中的名域声明。第一个</font>(xmlns=”urn:schemas-microsoft-com:xml-data”)<font lang="ZH-CN">表明这个</font>XML<font lang="ZH-CN">文档是一个</font>XML 
        Schema<font lang="ZH-CN">。第二个</font>(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)<font lang="ZH-CN">允许</font>schema<font lang="ZH-CN">处理者在“</font>ElementType<font lang="ZH-CN">”和“</font>AttributeType<font lang="ZH-CN">”声明中的“</font>type<font lang="ZH-CN">”属性前加“</font>dt<font lang="ZH-CN">”前缀来说明元素的类型和内容的特征</font></span><font face="宋体" lang="ZH-CN" size=3>。</font></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;Schema  xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"&gt;
     &lt;AttributeType name='studentID' dt:type='string' required='yes'/&gt;
     &lt;ElementType name='name' content='textOnly'&gt;
     &lt;ElementType name='GPA' content='textOnly' dt:type='float'/&gt;
     &lt;ElementType name='student' content='mixed'&gt;
         &lt;attribute type='studentID'/&gt;
         &lt;element type='name'/&gt;
         &lt;element type='GPA'/&gt;
     &lt;/ElementType&gt;
     &lt;ElementType name='class' content='eltOnly'&gt;
         &lt;element type='student'/&gt;
     &lt;/ElementType&gt;
&lt;/Schema&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><span class="normal10">schema<font lang="ZH-CN">用“</font>Schema<font lang="ZH-CN">”元素开头,“</font>Schema<font lang="ZH-CN">”元素包括</font>schema<font lang="ZH-CN">名域的声明,在本例中还包括数据类型名域的声明。</font>Schema<font lang="ZH-CN">的内容以“</font>AttributeType<font lang="ZH-CN">”和“</font>ElementType<font lang="ZH-CN">”的声明开头</font></span><font face="宋体" lang="ZH-CN" size=3>。</font></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;AttributeType name='studentID' dt:type='string' required='yes'/&gt;
&lt;ElementType name='name' content='textOnly'&gt;<br>&lt;ElementType name='GPA' content='textOnly' dt:type='float'/&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">这些声明接下来的是刚声明过元素的父亲元素的“</span></font><span class="normal10">ElementType<font lang="ZH-CN">”声明。</font></span></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;ElementType name='student' content='mixed'&gt;
     &lt;attribute type='studentID'/&gt;
     &lt;element type='name'/&gt;
     &lt;element type='GPA'/&gt;
&lt;/ElementType&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN" class="normal10">这个过程继续下去,直到所有元素都已经声明了。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">不同于</span></font><span class="normal10">DTDs<font lang="ZH-CN">,</font>XML 
        Schema<font lang="ZH-CN">允许有一个开放的内容模式,你可以进行定义数据类型、使用默认值等等操作而不必限定内容</font></span><font face="宋体" lang="ZH-CN" size=3>。</font></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">在下面的</span></font><span class="normal10">schema<font lang="ZH-CN">中,“</font>GPA<font lang="ZH-CN">”元素的类型被定义并有一个默认值,但在“</font>student<font lang="ZH-CN">”元素中没有其他节点被声明</font></span><font face="宋体" lang="ZH-CN" size=3>。</font></p>
      <p align="JUSTIFY"></p>
      <pre align="JUSTIFY" class="normal10"><font face="Arial, Helvetica, sans-serif">&lt;Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"&gt;
      &lt;AttributeType name="scale" default="4.0"/&gt;
      &lt;ElementType name="GPA" content="textOnly" dt:type="float"&gt;
         &lt;attribute type="scale"/&gt;
      &lt;/ElementType&gt;
      &lt;AttributeType name="studentID"/&gt;
      &lt;ElementType name="student" content="eltOnly" model="open" order="many"&gt;
         &lt;attribute type="studentID"/&gt;
         &lt;element type="GPA"/&gt;
      &lt;/ElementType&gt; 
&lt;/Schema&gt;</font></pre>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN"><span class="normal10">上面的</span></font><span class="normal10">schema<font lang="ZH-CN">允许你只确认你所关心的区域。这使你对文档有更多的控制,并允许你使用</font>schema<font lang="ZH-CN">提供的一些特性而不必严格确认。</font></span></p>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><font lang="ZH-CN" class="normal10">一些说明:</font></p>
      <p align="JUSTIFY"></p>
      <ul>
        <p align="JUSTIFY">
        <li><font lang="ZH-CN"><span class="normal10">“</span></font><span class="normal10">ElementType<font lang="ZH-CN">”和“</font>AttributeType<font lang="ZH-CN">”声明必须放在“</font>attribute<font lang="ZH-CN">”和“</font>element<font lang="ZH-CN">”内容声明之前。例如,在上面的</font>schema<font lang="ZH-CN">中,“</font>GPA<font lang="ZH-CN">”元素的“</font>ElementType<font lang="ZH-CN">”声明必须放在“</font>student<font lang="ZH-CN">”元素的“</font>ElementType<font lang="ZH-CN">”声明之前。</font></span></li>
        <p></p>
        <p align="JUSTIFY">
        <li><font lang="ZH-CN"><span class="normal10">“</span></font><span class="normal10">order<font lang="ZH-CN">”属性的默认值是建立在“</font>content<font lang="ZH-CN">”属性的值上的。当</font>content<font lang="ZH-CN">值为“</font>eltOnly<font lang="ZH-CN">”时,</font>order<font lang="ZH-CN">默认值是“</font>seq<font lang="ZH-CN">”。当</font>content<font lang="ZH-CN">值为“</font>mixed<font lang="ZH-CN">”时,</font>order<font lang="ZH-CN">默认值是“</font>many<font lang="ZH-CN">”。</font></span></li>
        <p></p>
      </ul>
      <p align="JUSTIFY"></p>
      <p align="JUSTIFY"><a href="#head"><font face="宋体" lang="ZH-CN" size="3">返回</font></a></p>
      <p>&nbsp;</p>
    </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" target="_parent">返回资源</a>][<a href="../../default.asp" tppabs="http://www.xml.org.cn:8188/default.asp" target="_parent">返回首页</a>][<a href="mailto:xmlteam@egroups.com">欢迎投稿</a>]</font></p>
      <p align="center" class="normal10">最后更新:1999年8月25日<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 + -