如何使用XML中的命名类型创建子节点

时间:2015-08-25 13:00:14

标签: c# xml visual-studio xsd

我有以下xsd架构,我想在DGItems中添加DG集合。所以我想知道如何实现这一目标。

当以这种方式在第二部分查看我的xml时,我希望实现这一点。只需要一点帮助就可以解决这个问题。

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="InvoiceData" type="InvoiceData"/>
  <xs:complexType name="InvoiceData">
    <xs:sequence>
      <xs:element name="HeaderFields" type="HeaderFields"/>
      <xs:element name="DGItems" type="DGItems"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeaderFields">
    <xs:sequence>
      <xs:element name="CompanyId" type="xs:string" />
      <xs:element name="ImageID" type="xs:string" />
      <xs:element name="Incident" type="xs:string" />
      <xs:element name="FacilityID" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DGItems">
    <xs:sequence>
      <xs:element name="DG1" type="xs:string" />
      <xs:element name="DG2" type="xs:string" />
      <xs:element name="DG3" type="xs:string" />
      <xs:element name="DG4" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>



<InvoiceValues>
    <HeaderFields>
      <CompanyId>StringValue</CompanyId>
      <ImageID>StringValue</ImageID>
      <Incident>StringValue</Incident>
      <FacilityID>StringValue</FacilityID>
    </HeaderFields>
    <DGItems>
      <Dg>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
      </Dg>
      <Dg>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
        <DG1>StringValue</DG1>
      </Dg>
    </DGItems>
</InvoiceValues>

需要你的帮助。

1 个答案:

答案 0 :(得分:0)

我已经自己解决了这个问题,我为修复问题所做的工作如下:我在Sequence节点中添加了Element AI&amp;通过这种方式,我设法解决了我的问题。

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="EmployeeData" type="EmployeeData"/>
    <xs:complexType name="EmployeeData">
        <xs:sequence>
            <xs:element name="EmployeeHeaderData" type="EmployeeHeaderData"/>
            <xs:element name="AddressItems" type="AddressItems"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="EmployeeHeaderData">
        <xs:sequence>
            <xs:element name="CompanyId" type="xs:string" />
            <xs:element name="ImageID" type="xs:string" />
            <xs:element name="Incident" type="xs:string" />
            <xs:element name="FacilityID" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="AddressItems">
        <xs:sequence>
            <xs:element name="AI" minOccurs="0" maxOccurs="unbounded" >
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="AI1" type="xs:string" />
                        <xs:element name="AI2" type="xs:string" />
                        <xs:element name="AI3" type="xs:string" />
                        <xs:element name="AI4" type="xs:string" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>