JSRUN 用代码说话

<any> 元素

编辑教程

<any> 元素

本节为你介绍 XML Schema any 元素的使用,可以用来扩展 XML 文档。

<any> 元素使我们有能力通过未被 schema 规定的元素来拓展 XML 文档!

<any> 元素

<any> 元素使我们有能力通过未被 schema 规定的元素来拓展 XML 文档!

下面这个例子是从名为 "family.xsd" 的 XML schema 中引用的片段。它展示了一个针对 "person" 元素的声明。通过使用 <any> 元素,我们可以通过任何元素(在 <lastname> 之后)扩展 "person" 的内容:

 <xs:element name="person">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="firstname" type="xs:string"/>
       <xs:element name="lastname" type="xs:string"/>
       <xs:any minOccurs="0"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

提示:在一个复杂类型中加入 <xs:any minOccurs="0"/>,则可通过其他外部元素扩展原复杂类型。

现在,我们希望使用 "children" 元素来扩展 "person" 元素。这此种情况下我们就可以这么做,即使以上这个 schema 的作者没有声明任何 "children" 元素。

请看这个 schema 文件,名为 "children.xsd":

 <?xml version="1.0" encoding="ISO-8859-1"?>
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 targetNamespace="http://www.jsrun.com"
 xmlns="http://www.jsrun.com"
 elementFormDefault="qualified">

 <xs:element name="children">
   <xs:complexType>
     <xs:sequence>
       <xs:element name="childname" type="xs:string"
       maxOccurs="unbounded"/>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

 </xs:schema>

下面这个 XML 文件(名为 "Myfamily.xml"),使用了来自两个不同的 schema 中的成分,"family.xsd" 和 "children.xsd":

 <?xml version="1.0" encoding="ISO-8859-1"?>

 <persons xmlns="http://www.microsoft.com"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.microsoft.com family.xsd
 http://www.jsrun.com children.xsd">

 <person>
   <firstname>Hege</firstname>
   <lastname>Refsnes</lastname>
   <children>
     <childname>Cecilie</childname>
   </children>
 </person>

 <person>
   <firstname>Stale</firstname>
   <lastname>Refsnes</lastname>
 </person>

 </persons>

上面这个 XML 文件是有效的,这是由于 schema "family.xsd" 允许我们通过在 "lastname" 元素后的可选元素来扩展 "person" 元素。

<any> 和 <anyAttribute> 均可用于制作可扩展的文档!它们使文档有能力包含未在主 XML schema 中声明过的附加元素。

JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟