以下帖子询问如何指示元素是中的根元素
一个XML模式:
一个XML模式:
Is it possible to define a root element in an XML Document using Schema?
我已经遵循关于XML模式的w3schools教程,但是一些仍然不清楚。
考虑从http://www.w3schools.com/schema/schema_example.asp开始的示例模式2
(以下为方便起见)。此代码如何指示< shiporder>
是根元素?不是例子说的所有元素
作为根元素有效?
—————— instance ——————————- — —
<?xml version="1.0" encoding="ISO-8859-1"?> <shiporder orderid="889923" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="shiporder.xsd"> <orderperson>John Smith</orderperson> <shipto> <name>Ola Nordmann</name> <address>Langgt 23</address> <city>4000 Stavanger</city> <country>Norway</country> </shipto> <item> <title>Empire Burlesque</title> <note>Special Edition</note> <quantity>1</quantity> <price>10.90</price> </item> <item> <title>Hide your heart</title> <quantity>1</xample saying that all elements are valid as root elements?quantity> <price>9.90</price> </item> </shiporder>
———————– schema ————————
<?xml version="1.0" encoding="ISO-8859-1" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <!-- 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"/> <!-- definition of attributes --> <xs:attribute name="orderid" type="xs:string"/> <!-- 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> <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> </xs:schema>
从我的角度来看,XML Schema应该做两件事:
>定义每个节点内可能发生什么
>定义每个节点可以放置的位置
似乎示例在#2失败。
有什么建议么?
据我所知,任何全局定义的元素可以用作根元素,XML模式没有指定根元素应该是什么的概念。
然而,您可以通过设计您的XML模式来解决这个问题,以便只有一个全局定义的元素 – 那么只有这个元素作为根元素有效。
一个例子可以在W3Schools(标题使用命名类型)此示例只有一个全局定义的元素,因此只有一个可能的根元素。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。