一个关于Schema的问题,请求帮助

一个关于Schema的问题,请求帮助
(借用首页存放到下午1:30分,然后移动到提问区,谢谢!)

现在需要定义这样一个节点:

<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>

现在的问题就是第一个Node类型的定义不对,也就是说我无法把Node既作为SimpleNode又作为NestNode。

各位大虾有什么高见?

原文地址:https://www.cnblogs.com/BigTall/p/60294.html