【发布时间】:2011-11-30 09:09:24
【问题描述】:
我需要构建一个 XSD 架构来部分验证文件。文件结构为:
<Root>
<Node name="core">
<ElementA>String</ElementA>
<ElementB>String</ElementB>
</Node>
<Node name="something unique">
(any number of elements, with unknown names and types)
</Node>
</Root>
我的 XSD 类似于:
<xs:element name="Root">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Node">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="name" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
不完整且不完全正确,未命名的<xs:element>无效。
有几个节点是必需的,每个节点都有一个唯一的名称属性;这就是我想要验证的。名称列表和这些节点的内容是预定义的。
名称未知的节点的内容也是未知的,可以包含任意数量的任意名称和类型的元素,但本身不能有属性或值。
我遇到的问题是允许子元素不知道他们的名字。
有没有可能用 XSD 做这样的事情?有没有办法拥有复杂类型的元素或 anyType 和属性?
编辑: 使用<Node> names 作为元素类型同样可以接受,然后简单地允许其他名称未知的元素。无论哪种方式,我都需要允许具有未知名称和类型的节点。
【问题讨论】:
标签: xsd