📄 schemaintro.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%"> </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%"> </td>
</tr>
<tr>
<td width="17%" height="19"> </td>
<td width="62%" height="19">
<div align="center">
<p>作者:吴剑南</p>
</div>
</td>
<td width="21%" height="19"> </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"><?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">?><br>
</font></span></i><span class="normal105"><books><br>
<book><br>
<title> 语文第一册</title><br>
<author>教委</author><br>
</book></books></span><br>
<br>
<span class="normal105"><?xml version=’1.0’ encoding=’gb2312’?><br>
<books><br>
<book><br>
<title> </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"></title></span></font></span></span><font size="+1"><i><br>
</i><span class="normal105"><title></span> <font face="宋体"
lang="ZH-CN" class="normal105">语文第二册</font><span class="normal105"></title></span><br>
<span class="normal105"><author><font face="宋体" lang="ZH-CN">教委</font></author></span><br>
<span class="normal105"></book><br>
</books></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"><!--
idSchema.xml --><br>
<Schema ><br>
<AttributeType name="title" /><br>
<AttributeType name="author" /><br>
<ElementType name="book" ><br>
<attribute type="title"/><br>
<attribute type="author" occurs="ONEORMORE"/><br>
</ElementType><br>
</Schema></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">
<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"><?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">?><br>
<books xmlns:data="x-schema:idSchema.xml"><br>
<data:book><br>
<title> 语文第一册</title><br>
<author>教委</author><br>
</data:book><br>
</books></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> <span class="normal105"><books xmlns:data="x-schema:idSchema.xml"></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"><data:book></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"><?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">?><br>
<books xmlns:data="x-schema:idSchema.xml"><br>
<data:book><br>
<title> 语文第一册</title><br>
<title> 语文第二册</title><br>
<author>教委</author><br>
</data:book><br>
</books></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"> <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"> <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"> </p>
</b> <b>
<p ALIGN="CENTER"> </p>
</b>
<p ALIGN="JUSTIFY"> <font SIZE="3"></font></p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -