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

📄 schemaintro.htm

📁 这是一本关于XML的学习的书
💻 HTM
字号:
<html>

<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<title>Schema 简介</title>

<link rel="stylesheet" href="../../Global.css" tppabs="http://www.xml.org.cn:8188/Global.css"></head>

<body LINK="#0000ff">
<table width="24%" border="0" height="30" cellpadding="0" cellspacing="3">
  <tr> 
    <td width="50%"> 
      <p align="left"><a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm" target="_parent">返回学习&研究 </a></p>
    </td>
    <td width="50%"> 
      <p align="left"><a href="../../default.htm" tppabs="http://www.xml.org.cn:8188/default.htm" target="_parent">返回首页</a> </p>
    </td>
  </tr>
</table>
<table width="85%" border="0" align="center">
  <tr>
    <td height="22" width="17%">&nbsp;</td>
    <td height="22" width="62%"> 
      <div align="center">
        <h2><b><font color="#6633FF">XML<font face="宋体" lang="ZH-CN">中的</font>Schema<font face="宋体" lang="ZH-CN">简介</font></font></b></h2>
      </div>
    </td>
    <td height="22" width="21%">&nbsp;</td>
  </tr>
  <tr>
    <td width="17%" height="19">&nbsp;</td>
    <td width="62%" height="19"> 
      <div align="center">
        <p>作者:吴剑南</p>
      </div>
    </td>
    <td width="21%" height="19">&nbsp;</td>
  </tr>
</table>
<b> </b>
<table width="85%" border="0" align="center">
  <tr> 
    <td height="906"> 
      <p align="JUSTIFY"><font size="+1"><span class="normal105"><span class="normal105">Schema<font lang="ZH-CN">的通常意义是定义某种对象的类别特征,或者说是类型。所以</font>XML<font lang="ZH-CN">中的</font>Schema<font lang="ZH-CN">是用来定义</font>XML<font lang="ZH-CN">文件的数据类型的。</font></span></span></font><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">大家都知道</span>,<span class="normal105">一般来讲一个</span></font><font size="+1"><span class="normal105">XML</span><font face="宋体" lang="ZH-CN"><span class="normal105">文件只要符合语法规则,就是正确的,比如下面两段描述书的</span></font><span class="normal105">XML,<font face="宋体" lang="ZH-CN">单从</font>XML<font
face="宋体" lang="ZH-CN">语法上来说都是正确的</font>, <font
face="宋体" lang="ZH-CN">交给</font>XML<font
face="宋体" lang="ZH-CN">解释器去解释都不会出错</font></span></font></span><font size="+1" class="normal105">:</font></span></span></span></span></p>
      <p align="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><i><font face="宋体" lang="ZH-CN"><span class="normal105">&lt;?xml 
        version=</span></font><span class="normal105">’<font face="宋体" lang="ZH-CN">1.0</font>’<font face="宋体" lang="ZH-CN"> 
        encoding=</font>’<font face="宋体" lang="ZH-CN">gb2312</font>’<font face="宋体" lang="ZH-CN">?&gt;<br>
        </font></span></i><span class="normal105">&lt;books&gt;<br>
        &lt;book&gt;<br>
        &lt;title&gt; 语文第一册&lt;/title&gt;<br>
        &lt;author&gt;教委&lt;/author&gt;<br>
        &lt;/book&gt;&lt;/books&gt;</span><br>
        <br>
        <span class="normal105">&lt;?xml version=’1.0’ encoding=’gb2312’?&gt;<br>
        &lt;books&gt;<br>
        &lt;book&gt;<br>
        &lt;title&gt; </span></font><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">语文第一册</span></font><span class="normal105"><span class="normal105"><font size="+1"><span class="normal105">&lt;/title&gt;</span></font></span></span><font size="+1"><i><br>
        </i><span class="normal105">&lt;title&gt;</span> <font face="宋体"
lang="ZH-CN" class="normal105">语文第二册</font><span class="normal105">&lt;/title&gt;</span><br>
        <span class="normal105">&lt;author&gt;<font face="宋体" lang="ZH-CN">教委</font>&lt;/author&gt;</span><br>
        <span class="normal105">&lt;/book&gt;<br>
        &lt;/books&gt;</span></font></span><font size="+1"><br>
        <br>
        </font><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">但是很显然,我们不认为一本书会有两个名字(当然,翻译的书也许可以有例外),所以我们希望第二段代码解释时不被通过。这样,我们就需要用到</span></font><span class="normal105"><font size="+1" class="normal105">Schema. 
        <font face="宋体" lang="ZH-CN">我们定义如下的</font>Schema:</font></span></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><i class="normal105">&lt;!-- 
        idSchema.xml --&gt;<br>
        &lt;Schema &gt;<br>
        &lt;AttributeType name=&quot;title&quot; /&gt;<br>
        &lt;AttributeType name=&quot;author&quot; /&gt;<br>
        &lt;ElementType name=&quot;book&quot; &gt;<br>
        &lt;attribute type=&quot;title&quot;/&gt;<br>
        &lt;attribute type=&quot;author&quot; occurs=&quot;ONEORMORE&quot;/&gt;<br>
        &lt;/ElementType&gt;<br>
        &lt;/Schema&gt;</i></font></span></span></span></p>
      <p align="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1">&nbsp;&nbsp;&nbsp; 
        <span class="normal105">这段代码的意思就是:我们在</span></font><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font size="+1" class="normal105">XML</font></span></span><font size="+1"><font face="宋体" lang="ZH-CN"><span class="normal105">文件中有“</span></font><span class="normal105">book<font face="宋体" lang="ZH-CN">”元素,而“</font>book<font face="宋体" lang="ZH-CN">”必须有两个属性:“</font>title”<font face="宋体" lang="ZH-CN">和”“</font>author<font face="宋体" lang="ZH-CN">”,“</font>title<font face="宋体" lang="ZH-CN">”属性只能出现一次(缺省设置),表明书只有一个名字</font></span><font face="宋体" lang="ZH-CN"><span class="normal105">;而“</span></font><span class="normal105">author<font face="宋体" lang="ZH-CN">”属性可以出现一次或多次</font></span><font face="宋体" lang="ZH-CN"><span class="normal105">,表明书可以有多个作者。</span></font></font><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">我们若将这个</span></font><span class="normal105"><font size="+1"><span class="normal105">Schema<font
face="宋体" lang="ZH-CN">运用到前面的</font>XML<font
face="宋体" lang="ZH-CN">文件中</font></span><font
face="宋体" lang="ZH-CN"><span class="normal105">,</span></font></font></span><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><font
face="宋体" lang="ZH-CN"><span class="normal105">就可以检测出不符和要求的代码</span></font></font></span></span></span></span></span></span><font size="+1"><font
face="宋体" lang="ZH-CN" class="normal105">:</font></font></span></span></span></span></span></span></p>
      <p align="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><i><font
face="宋体" lang="ZH-CN"><span class="normal105">&lt;?xml version=</span></font><span class="normal105">’<font face="宋体"
lang="ZH-CN">1.0</font>’<font face="宋体" lang="ZH-CN"> encoding=</font>’<font face="宋体" lang="ZH-CN">gb2312</font>’<font face="宋体" lang="ZH-CN">?&gt;<br>
        &lt;books xmlns:data=&quot;x-schema:idSchema.xml&quot;&gt;<br>
        &lt;data:book&gt;<br>
        &lt;title&gt; 语文第一册&lt;/title&gt;<br>
        &lt;author&gt;教委&lt;/author&gt;<br>
        &lt;/data:book&gt;<br>
        &lt;/books&gt;</font></span></i></font></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1"> 
        <b>&nbsp;&nbsp;&nbsp;&nbsp;<span class="normal105">&lt;books xmlns:data=&quot;x-schema:idSchema.xml&quot;&gt;</span></b><span class="normal105">表明在这个XML文件中,将用到</span></font><span class="normal105"><font size="+1">”<span class="normal105"><font face="宋体" lang="ZH-CN">idSchema.xml</font>”<font face="宋体" lang="ZH-CN">文件中定义的Schema</font></span><font face="宋体" lang="ZH-CN"><span class="normal105">,</span> 
        <span class="normal105">这个Schema在文件中的引用名称是</span></font><span class="normal105">”<font
face="宋体" lang="ZH-CN">data</font>”<font
face="宋体" lang="ZH-CN" class="normal105">.</font></span></font><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1"><b><span class="normal105">&lt;data:book&gt;</span></b> 
        </font></span><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">表明此处的“book</span></font><span class="normal105"><font size="+1" class="normal105">”</font><span class="normal105"><span class="normal105"><font size="+1"><font face="宋体" lang="ZH-CN"><span class="normal105">元素不是任意的</span></font></font></span></span></span><font size="+1"><font face="宋体" lang="ZH-CN"><span class="normal105">,而是要符合“data”所指明的</span></font><span class="normal105">”<font face="宋体" lang="ZH-CN">idSchema</font></span><font face="宋体" lang="ZH-CN"><span class="normal105">.xml</span></font><span class="normal105">”</span><font face="宋体" lang="ZH-CN"><span class="normal105">中的“book”定义。</span></font></font><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1" class="normal105">这样</font></span><font face="宋体" lang="ZH-CN" size="+1"><span class="normal105">,如果将同样的Schema运用到第二段代码中,这段代码在解释时就不能通过,因为它包含了两个名字属性,不符合Schema中定义的语法:</span></font></span></span></span></span></p>
      <p align="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><i><font face="宋体" lang="ZH-CN"><span class="normal105">&lt;?xml 
        version=</span></font><span class="normal105">’<font face="宋体"
lang="ZH-CN">1.0</font>’<font face="宋体" lang="ZH-CN"> encoding=</font>’<font face="宋体" lang="ZH-CN">gb2312</font>’<font face="宋体" lang="ZH-CN">?&gt;<br>
        &lt;books xmlns:data=&quot;x-schema:idSchema.xml&quot;&gt;<br>
        &lt;data:book&gt;<br>
        &lt;title&gt; 语文第一册&lt;/title&gt;<br>
        &lt;title&gt; 语文第二册&lt;/title&gt;<br>
        &lt;author&gt;教委&lt;/author&gt;<br>
        &lt;/data:book&gt;<br>
        &lt;/books&gt;</font></span></i></font></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1">&nbsp;&nbsp;&nbsp;&nbsp;<span class="normal105">顺便说一下,一个XML文件中可以使用多个Schema.</span></font></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="+1">&nbsp;&nbsp;&nbsp;&nbsp;<span class="normal105">以上只是介绍了Schema的最基本的含义和用途。关于详细的语法规则和其它用途,请参照W3C的文档:</span></font></span></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><font size="+1"><a href="../../../www.w3.org/TR/1998/NOTE-XML-data-0105/index.htm" tppabs="http://www.w3.org/TR/1998/NOTE-XML-data-0105/"><span class="normal105">http://www.w3.org/TR/1998/NOTE-XML-data-0105/</span></a></font></span></span></span></span></p>
      <p align="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><font face="宋体" lang="ZH-CN" size="3"> </font></span></span></span></p>
      <hr width="100%" size="1">
      <div align="center"> 
        <p><a href="../resource.htm" tppabs="http://www.xml.org.cn:8188/resource/resource.htm">返回学习&研究 </a><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>
      </div>
    </td>
  </tr>
</table>
<b>
<p ALIGN="CENTER">&nbsp; </p>
</b> <b> 
<p ALIGN="CENTER">&nbsp;</p>
</b> 
<p ALIGN="JUSTIFY"> <font SIZE="3"></font></p>
</body>
</html>

⌨️ 快捷键说明

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