📄 xml~nt.htm
字号:
<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"><?xml version="1.0"?>
<weather xmlns="x-schema:weatherSchema.xml">
<date>1970-09-30</date>
<degrees>67.5</degrees>
</weather></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"><Schema xmlns="urn:schemas-microsoft-com:xml-data"xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="date" content="textOnly" dt:type="date"/>
<ElementType name="degrees" content="textOnly" dt:type="float"/>
<ElementType name="weather" content="eltOnly"/>
<element type="date"/>
<element type="degrees"/>
</ElementType>
</Schema></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"><class xmlns="x-schema:classSchema.xml">
<student studentID="13429">
<name>Jane Smith</name>
<GPA>3.8</GPA>
</student>
</class></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"><Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name='studentID' dt:type='string' required='yes'/>
<ElementType name='name' content='textOnly'>
<ElementType name='GPA' content='textOnly' dt:type='float'/>
<ElementType name='student' content='mixed'>
<attribute type='studentID'/>
<element type='name'/>
<element type='GPA'/>
</ElementType>
<ElementType name='class' content='eltOnly'>
<element type='student'/>
</ElementType>
</Schema></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"><AttributeType name='studentID' dt:type='string' required='yes'/>
<ElementType name='name' content='textOnly'><br><ElementType name='GPA' content='textOnly' dt:type='float'/></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"><ElementType name='student' content='mixed'>
<attribute type='studentID'/>
<element type='name'/>
<element type='GPA'/>
</ElementType></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"><Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
<AttributeType name="scale" default="4.0"/>
<ElementType name="GPA" content="textOnly" dt:type="float">
<attribute type="scale"/>
</ElementType>
<AttributeType name="studentID"/>
<ElementType name="student" content="eltOnly" model="open" order="many">
<attribute type="studentID"/>
<element type="GPA"/>
</ElementType>
</Schema></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> </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"> </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 + -