一个关于Schema的问题,请求帮助
一个关于Schema的问题,请求帮助
(借用首页存放到下午1:30分,然后移动到提问区,谢谢!)
现在需要定义这样一个节点:
<Nodes>
<Node>this is a node</Node>
<Node>
<Text>this is another node</Text>
<Node> 嵌套其他子节点. </Node>
</Node>
</Nodes>
<Node>this is a node</Node>
<Node>
<Text>this is another node</Text>
<Node> 嵌套其他子节点. </Node>
</Node>
</Nodes>
现在的关键问题是,这样的节点如何用Schema定义?我现在的解决方案是这样:
<xs:complexType name="Node">
<xs:sequence>
<xs:choice>
<xs:element name="SimpleNode" type="SimpleNode" />
<xs:element name="NestNode" type="NestNode" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NestNode">
<xs:sequence>
<xs:element name="Text" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Node" type="Node" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="SimpleNode">
<xs:simpleContent>
<xs:extension base="xs:string" >
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:sequence>
<xs:choice>
<xs:element name="SimpleNode" type="SimpleNode" />
<xs:element name="NestNode" type="NestNode" />
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NestNode">
<xs:sequence>
<xs:element name="Text" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Node" type="Node" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="SimpleNode">
<xs:simpleContent>
<xs:extension base="xs:string" >
</xs:extension>
</xs:simpleContent>
</xs:complexType>
现在的问题就是第一个Node类型的定义不对,也就是说我无法把Node既作为SimpleNode又作为NestNode。
各位大虾有什么高见?
公众号:老翅寒暑