📄 schema_example.asp
字号:
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></pre>
<pre><xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" use="required"/>
</xs:complexType>
</xs:element></pre>
<pre></xs:schema></pre>
</td>
</tr>
</table>
<br />
<hr />
<h2>Divide the Schema</h2>
<p>The previous design method is very simple, but can be difficult to read and
maintain when documents are complex.</p>
<p>The next design method is based on defining all elements and attributes
first, and then referring to them using the ref attribute.</p>
<p>Here is the new design of the schema file ("shiporder.xsd"):</p>
<table width="100%" border="1" class="ex" cellspacing="0">
<tr>
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></pre>
<pre><!-- definition of simple elements -->
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/></pre>
<pre><!-- definition of attributes -->
<xs:attribute name="orderid" type="xs:string"/></pre>
<pre><!-- definition of complex elements -->
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="address"/>
<xs:element ref="city"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="note" minOccurs="0"/>
<xs:element ref="quantity"/>
<xs:element ref="price"/>
</xs:sequence>
</xs:complexType>
</xs:element></pre>
<pre><xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element ref="orderperson"/>
<xs:element ref="shipto"/>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="orderid" use="required"/>
</xs:complexType>
</xs:element></pre>
<pre></xs:schema></pre>
</td>
</tr>
</table>
<br />
<hr />
<h2>Using Named Types</h2>
<p>The third design method defines classes or types, that enables us to reuse element
definitions. This is done by naming the simpleTypes and complexTypes elements,
and then point to them through the type attribute of the element.</p>
<p>Here is the third design of the schema file ("shiporder.xsd"):</p>
<table width="100%" border="1" class="ex" cellspacing="0">
<tr>
<td>
<pre><?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></pre>
<pre><xs:simpleType name="stringtype">
<xs:restriction base="xs:string"/>
</xs:simpleType></pre>
<pre><xs:simpleType name="inttype">
<xs:restriction base="xs:positiveInteger"/>
</xs:simpleType></pre>
<pre><xs:simpleType name="dectype">
<xs:restriction base="xs:decimal"/>
</xs:simpleType></pre>
<pre><xs:simpleType name="orderidtype">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType></pre>
<pre><xs:complexType name="shiptotype">
<xs:sequence>
<xs:element name="name" type="stringtype"/>
<xs:element name="address" type="stringtype"/>
<xs:element name="city" type="stringtype"/>
<xs:element name="country" type="stringtype"/>
</xs:sequence>
</xs:complexType></pre>
<pre><xs:complexType name="itemtype">
<xs:sequence>
<xs:element name="title" type="stringtype"/>
<xs:element name="note" type="stringtype" minOccurs="0"/>
<xs:element name="quantity" type="inttype"/>
<xs:element name="price" type="dectype"/>
</xs:sequence>
</xs:complexType></pre>
<pre><xs:complexType name="shipordertype">
<xs:sequence>
<xs:element name="orderperson" type="stringtype"/>
<xs:element name="shipto" type="shiptotype"/>
<xs:element name="item" maxOccurs="unbounded" type="itemtype"/>
</xs:sequence>
<xs:attribute name="orderid" type="orderidtype" use="required"/>
</xs:complexType></pre>
<pre><xs:element name="shiporder" type="shipordertype"/></pre>
<pre></xs:schema></pre>
</td>
</tr>
</table>
<p>The restriction element indicates that the datatype is derived from a W3C XML
Schema namespace datatype. So, the following fragment means that the value of
the element or attribute must be a string value:</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table1">
<tr>
<td>
<pre><xs:restriction base="xs:string"></pre>
</td>
</tr>
</table>
<p>The restriction element is more often used to apply restrictions to elements.
Look at the following lines from the schema above:</p>
<table width="100%" border="1" class="ex" cellspacing="0" id="table2">
<tr>
<td>
<pre><xs:simpleType name="orderidtype">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType></pre>
</td>
</tr>
</table>
<p>This indicates that the value of the element or attribute must be a string, it must be exactly six characters in a row, and those characters must be a
number from 0 to 9.</p>
<hr />
<a href="schema_complex_subst.asp"><img border="0" src="../images/btn_previous.gif" alt="prev" width="100" height="20" /></a>
<a href="schema_dtypes_string.asp"><img border="0" src="../images/btn_next.gif" alt="next" width="100" height="20" /></a>
<br />
<hr />
<!-- **** SPOTLIGHTS 1 **** -->
<iframe src="../banners/aspallframe.asp" height="110" width="485"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<hr />
<!-- **** SPOTLIGHTS 2 **** -->
<h2>Learn XML with <oXygen/> XML Editor - Free Trial!</h2>
<table cellpadding="0"><tr>
<td valign="top"><a target="_blank" href="../../www.oxygenxml.com/default.htm">
<img src="../images/oxygenxml.png" border="0" alt="oXygen - Probably The World's Best XML Editor" /></a></td>
<td> </td>
<td valign="top">
<p><a href="../../www.oxygenxml.com/default.htm" target="_blank">oXygen</a> helps you learn to define,
edit, validate and transform XML documents. Supported technologies include XML Schema,
DTD, Relax NG, XSLT, XPath, XQuery, CSS.</p>
<p>Understand in no time how XSLT and XQuery work by using the intuitive oXygen debugger!</p>
<p>Do you have any XML related questions? Get free answers from the oXygen
<a href="../../www.oxygenxml.com/forum/default.htm" target="_blank">XML forum</a>
and from the <a href="../../www.oxygenxml.com/documentation.html" target="_blank">video</a>
demonstrations.</p>
<p><b><a href="../../www.oxygenxml.com/download.html" target="_blank">
Download a FREE 30-day trial today!</a></b></p>
</td></tr></table>
<hr />
<!-- **** SPOTLIGHTS 3 **** -->
<table cellpadding="0" cellspacing="0"><tr><td width="72"></td><td>
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*txt*/
google_ad_slot = "1699448869";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr></table>
<hr />
<center>
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*imgtxt*/
google_ad_slot = "8606855891";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</center>
<hr />
<!-- **** END SPOTLIGHTS **** -->
</td></tr>
<tr><td>
<p>Jump to: <a href="#top" target="_top"><b>Top of Page</b></a>
or <a href="../default.asp" target="_top"><b>HOME</b></a> or
<a href='schema_example.asp@output=print' target="_blank">
<img src="../images/print.gif" alt="Printer Friendly" border="0" />
<b>Printer friendly page</b></a></p>
<p>W3Schools provides material for training only. We do not warrant the correctness of its contents.
The risk from using it lies entirely with the user.
While using this site, you agree to have read and accepted our
<a href="../about/about_copyright.asp">terms of use</a> and
<a href="../about/about_privacy.asp">privacy policy</a>.
</p>
<p><a href="../about/about_copyright.asp">Copyright 1999-2008</a> by Refsnes Data. All Rights Reserved.</p>
<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>
<td width="60%" align="left">
<a href="../../validator.w3.org/check@uri=referer" target="_blank">
<img src="../images/vxhtml.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../jigsaw.w3.org/css-validator/check@uri=referer" target="_blank">
<img src="../images/vcss.gif" alt="Validate" width="88" height="31" border="0" /></a>
<a href="../../www.w3.org/WAI/WCAG1A-Conformance" title="Explanation of Level A Conformance" target="_blank">
<img src="../images/wai.gif" alt="W3C-WAI level A conformance icon" width="88" height="31" border="0" /></a>
</td>
<td>
<a href="../xhtml/xhtml_howto.asp" target="_top">W3Schools was converted to XHTML in December 1999</a>
</td></tr>
</table>
</td></tr>
</table>
</td>
<td width="145" align="center" valign="top">
<iframe style="background-color:#f1f1f1" src="../banners/rightcolumn.asp@secid=schema" height="1500" width="147"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
</iframe>
</td>
</tr></table>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -