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

本文关键字:类型 创建 子节点 XML | 更新日期: 2023-09-27 18:09:39

我有下面的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>

需要你的帮助。

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

我自己解决了这个问题,我为解决我的问题所做的事情如下:我在序列节点内添加了元素AI &通过这种方式,我设法解决了我的问题。

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