📄 schema.htm
字号:
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb_2312-80">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<title>XML Schema学习小结</title>
<link rel="stylesheet" href="../../Global.css" tppabs="http://www.xml.org.cn:8188/Global.css"><B> </B>
<table width="30%" border="0" height="30" cellpadding="0" cellspacing="3">
<tr>
<td width="61%">
<p align="left"><a href="../../../icdserver/resource/resource.htm" tppabs="http://icdserver:8080/resource/resource.htm" target="_parent"><font size="-1" class="normal9">返回学习&研究</font>
</a></p>
</td>
<td width="39%">
<p align="left"><a href="../../../icdserver/default.htm" tppabs="http://icdserver:8080/default.htm" target="_parent"><font size="-1"><span class="normal9">返回首页</span></font></a>
</p>
</td>
</tr>
</table>
<br>
<table width="44%" border="0" height="69" cellpadding="0" cellspacing="3" align="center">
<tr>
<td width="50%" height="70">
<h2 align="center"><b><font size=4>XML Schema </font><font face="宋体" lang="ZH-CN" size=4>学习小结</font></b></h2>
<p align="center"><span class="normal105"><span class="normal9"><span class="normal9">作者:<a href="mailto:xuejing@tangram.com.cn">薛泾</a></span></span></span></p>
<b></b></td>
</tr>
</table>
<B>
<P ALIGN="CENTER"><FONT SIZE=4> </font> </P>
</B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3></FONT>
<OL>
<B>
<LI><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN">为何需要</font><FONT FACE="Arial">XML
Schema</font></span></LI>
</B>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105"><span class="normal105">在当今的</span></span></font><span class="normal105"><span class="normal105"><FONT SIZE=3><span class="normal105">IT</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">行业中,</FONT><FONT SIZE=3 class="normal105">XML</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">被赋予了越来越多的职责和功能,例如,作为文本数据库存储数据,作为某一行业中数据交换的标准表示,等等。这些都需要相应的</span></FONT><span class="normal105"><FONT SIZE=3 class="normal105">XML</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件中对数据的描述,如数据类型、长度进行严格的定义,这样才能真正做到数据的安全性和行业统一标准并有通用的规则对其进行解析</span></font></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</font></span></span></P>
<P ALIGN="JUSTIFY"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">然而,</font><FONT SIZE=3><span class="normal105">XML</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">在其产生的时候就被定义为高开放性,用文本方式浏览,用标签来定义的标记语言,鉴于</FONT><FONT SIZE=3><span class="normal105">XML</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">的这些特点,就像</span></FONT><FONT SIZE=3 class="normal105">HTML</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">文件一样,</FONT><FONT SIZE=3 class="normal105">XML</FONT><span class="normal105"><span class="normal105"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件本身无法对文件中的数据进行严格的定<span class="normal105">义</span></span><span class="normal105">。</span></font></span></span></span></P>
<P ALIGN="JUSTIFY"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">为了解决以上的矛盾,</font><span class="normal105"><FONT SIZE=3><span class="normal105">XML</span>
<span class="normal105">Schema</span></FONT></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">应运而生了,它是用来定义</span></FONT><span class="normal105"><FONT SIZE=3 class="normal105">XML</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">文件的文本结构,数据类型等</FONT><FONT SIZE=3 class="normal105">XML</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">文件描述规则的。</font></span></P>
<B>
<LI><FONT FACE="宋体" LANG="ZH-CN"><span class="normal105">何为</span></font><span class="normal105"><FONT FACE="Arial">XML
Schema</font></span></LI>
</B>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">其实,</span></font><span class="normal105"><FONT SIZE=3><span class="normal105">XML</span>
<span class="normal105">Schema</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">本身也是一个</span></FONT><span class="normal105"><FONT SIZE=3>xml</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件</span></FONT></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,<span class="normal105">所不同的是,</span></FONT><FONT SIZE=3><span class="normal105">Schema</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件所描述的是对引用它的</span></FONT><FONT SIZE=3>xml</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">文件的</FONT><FONT SIZE=3><span class="normal105"><span class="normal105">element</span></span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">和</FONT><FONT SIZE=3><span class="normal105">attribute</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">的具体类型的。作为一个</span></FONT><FONT SIZE=3><span class="normal105">Schema</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件,其特殊的文件头格式为:</span></font></span></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT>
<P ALIGN="JUSTIFY"><FONT SIZE=3><span class="normal105"><?xml version="1.0"?><FONT FACE="Wingdings">ß</FONT>
------------------------------------------xml</span></font><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">文件头</font></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><FONT SIZE=3><<span class="normal105">Schema
name="schema_sample_1"</span> <FONT FACE="Wingdings">ß</FONT> <span class="normal105">------------------------<span class="normal105"><span class="normal105">
</span></span></span></font><span class="normal105"><span class="normal105"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">名称(<span class="normal105">可省略</span>)</span></font></span></span></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><FONT SIZE=3> <span class="normal105">xmlns="urn:schemas-microsoft-com:xml-data"</span>
<FONT FACE="Wingdings">ß</FONT> <span class="normal105">--------- </span></font><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">引用微软</span></FONT><span class="normal105"><FONT SIZE=3><span class="normal105">Schema</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">类型定义</font></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">(<span class="normal105">可省略</span>)</font></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><FONT SIZE=3> <span class="normal105">xmlns:dt="urn:schemas-microsoft-com:datatypes"></span><FONT FACE="Wingdings">ß</FONT>
-----</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">引用微软</span></FONT><span class="normal105"><FONT SIZE=3><span class="normal105">Schema</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">数据类型定义(可省略)</span></font></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><FONT SIZE=3><<span class="normal105">!--…………..-</span>
</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>〉</FONT><FONT SIZE=3> <FONT FACE="Wingdings">ß</FONT>
<span class="normal105">---------------------------------------------- </span></FONT><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">具体文件内容</font></span></span></P>
<FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"><<span class="normal105">/Schema</span>></span></P>
<P ALIGN="JUSTIFY"></P>
</FONT>
<P ALIGN="JUSTIFY"><span class="normal105"><span class="normal105"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">必须注意的是</span>,</font></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105"><span class="normal105"><span class="normal105">在一个定义</span></span></span></font><span class="normal105"><span class="normal105"><FONT SIZE=3><span class="normal105">Schema</span></FONT><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">的</FONT><FONT SIZE=3 class="normal105">xml</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件中</span>,<span class="normal105">文件的</span></FONT><span class="normal105"><FONT SIZE=3>root</FONT></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">一定为</FONT><FONT SIZE=3><span class="normal105"><<span class="normal105">Schema</span>>…</Schema></span></FONT><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</font></span></span></span></span></span></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">在文件的具体内容中,你可以添加你对某个</span></font><FONT SIZE=3><span class="normal105">xml</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">结构、数据类型的定义,请看下例:</font></span></span></span></span></span></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"><<span class="normal105">?xml
version="1.0"?</span>></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><catalog></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><book></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><title>Presenting <span class="normal105">XML</span></title></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><author>Richard Light</author></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><pages>334</pages></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"></book></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105">	<book></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105">		<title>XML</title></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><author>Jane Lee</author></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><pages>450</pages></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"></book></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"></catalog></span></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
</FONT>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">这是一个表示书目录的</span></font><span class="normal105"><FONT SIZE=3><span class="normal105">xml</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">文件,对每一本书的介绍,我们都要有一些数据上的规定,如,“书名”、“作者名”和“页数”都应该是唯一的,“作者名”应该为字符串类型,而“页数”应该为整数类型的,对每本“</span></FONT><FONT SIZE=3><span class="normal105">book</span></FONT><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105"><span class="normal105">”</span>来说,只能有所指定的三个元素。</span></font></span></span></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT>
<P ALIGN="JUSTIFY"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105">为了能实现上述要求,我们定义了如下</span></font><FONT SIZE=3 class="normal105">schema</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">:</font></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"><?xml version="1.0"?></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><Schema></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="title" content="textOnly"
model="closed" /></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="author" content="textOnly"
dt:type=”string” model="closed" /></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="pages" content="textOnly"
dt:type=”int” model="closed" /></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="book" content="eltOnly"
model="closed" order=”seq”></span></P>
</FONT>
<P ALIGN="JUSTIFY"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>		</FONT><FONT SIZE=3><element
type="title" /></font></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>		</FONT><FONT SIZE=3><element
type="author" /></font></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>		</FONT><FONT SIZE=3><element
type="pages" /> </font></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>	</FONT><FONT SIZE=3 class="normal105"></ElementType></font></span></P>
<FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"></Schema></span></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY">在以下的文章中,将详细的描述内容中的具体意义。</P>
</FONT><B><FONT FACE="Arial">
<LI class="normal105">ElementType</LI>
</font></B>
<P ALIGN="JUSTIFY"><FONT SIZE=3 class="normal105">ElementType</font><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">是</FONT><span class="normal105"><FONT SIZE=3>schema</FONT></span><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">中最基本的,它用来定义</FONT><FONT SIZE=3><span class="normal105">xml</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><span class="normal105"><span class="normal105"><span class="normal105">文件中元素的格式,数据类型等。</span></span></span></font></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><span class="normal105"><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">定义一个</font></span></span></span><FONT SIZE=3><span class="normal105">ElementType</span></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">的基本格式为:</font></P>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType</span></P>
<P ALIGN="JUSTIFY"><span class="normal105">content="{empty | textOnly | eltOnly
| mixed}" </span></P>
<P ALIGN="JUSTIFY"><span class="normal105">dt:type="datatype" </span></P>
<P ALIGN="JUSTIFY"><span class="normal105">model="{open | closed}" </span></P>
<P ALIGN="JUSTIFY"><span class="normal105">name="idref" </span></P>
<P ALIGN="JUSTIFY"><span class="normal105">order="{one | seq | many}" ></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"></ElementType></span></P>
<P ALIGN="JUSTIFY"></P></FONT>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=611 align="center">
<TR>
<TD WIDTH="15%" VALIGN="middle" ROWSPAN=4 align="center"> <FONT SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">content
</FONT></TD>
<TD WIDTH="35%" VALIGN="middle" ROWSPAN=4 class="normal105">
<P ALIGN="JUSTIFY"><FONT SIZE=3><span class="normal105">Content</span></font><span class="normal105"><FONT FACE="宋体" LANG="ZH-CN" SIZE=3 class="normal105">用于描述元素中的内容类型。</FONT></span>
</TD>
<TD WIDTH="15%" VALIGN="TOP" class="normal105"> <FONT SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">empty
</FONT></TD>
<TD WIDTH="35%" VALIGN="TOP" class="normal105"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">元素内容为空
</FONT></TD>
</TR>
<TR>
<TD WIDTH="15%" VALIGN="TOP" class="normal105"> <FONT SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">textOnly
</FONT></TD>
<TD WIDTH="35%" VALIGN="TOP" class="normal105"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">元素只包含文本类型的内容
</FONT></TD>
</TR>
<TR>
<TD WIDTH="15%" VALIGN="TOP" class="normal105"> <FONT SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">eltOnly
</FONT></TD>
<TD WIDTH="35%" VALIGN="TOP" class="normal105"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY">元素只包含元素类型的内容</FONT></TD>
</TR>
<TR>
<TD WIDTH="15%" VALIGN="TOP" class="normal105"> <FONT SIZE=3>
<P ALIGN="JUSTIFY" class="normal105">mixed
</FONT></TD>
<TD WIDTH="35%" VALIGN="TOP" class="normal105"> <FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY">元素内容包含上述任何情况</FONT></TD>
</TR>
</TABLE>
<FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
</FONT><FONT SIZE=3>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="x" content="empty"/></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="x" content="textOnly"/></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><ElementType name="x" content="eltOnly"></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><span class="normal105"><element
type="y"></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><span class="normal105"></ElementType></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><span class="normal105"><ElementType
name="x" content="mixed"></span></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><span class="normal105"><element
type='q'></span></span></P>
<P ALIGN="JUSTIFY"> <span class="normal105"><span class="normal105"><element
type='r'></span></span></P>
<P ALIGN="JUSTIFY"><span class="normal105"><span class="normal105"></ElementType></span></span></P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>
<P ALIGN="JUSTIFY"></P>
<P ALIGN="JUSTIFY"><span class="normal105"> </span></P>
</FONT>
<TABLE BORDER CELLSPACING=1 CELLPADDING=7 WIDTH=611>
<TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -