2016-09-28 79 views
-1

取代我在我的*下面的代码.xsd文件xsd2code元素获得通过列表

<xs:element name="node"> 
    <xs:complexType> 
     <xs:sequence> 
     ... 
     </xs:sequence> 
     <xs:attribute name="id" type="xs:string" use="required"/> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="foo"> 
    <xs:complexType> 
     <xs:sequence> 
     <!-- this should be lists of bar and baz and NOT of node --> 
     <xs:element ref="bar" minOccurs="0" maxOccurs="unbounded"/> 
     <xs:element ref="baz" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

    <xs:element name="bar"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    <xs:element name="baz"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 

,但是当我用xsd2code gernerate这个代码我得到一些奇怪的输出,其中在FOO酒吧和巴兹属性列表的节点。我需要bar和baz作为包含节点列表的类。我怎样才能做到这一点 ?

public partial class foo { // generated class 

    private List<node> barField; // ?! 

    private List<node> bazField; // ?! 

    // ... 
} 

回答

0

找到了我的问题的解决方案。我只需要设置mixed =“true”。这里是代码:

... 
    <xs:element name="bar"> 
    <xs:complexType mixed="1"> 
     <xs:sequence> 
     <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
    ... 


public partial class foo { // generated class 

     private List<bar> barField; 

     private List<baz> bazField; 

     // ... 
}