代码之家  ›  专栏  ›  技术社区  ›  user272671

手动编辑Biztalk WCF适配器架构

  •  0
  • user272671  · 技术社区  · 15 年前

    我对以现在(手动)的方式生成模式还不太熟悉,这里需要一些帮助。我有一个模式,如下所示,我甚至不确定它是否正确。我想要的是一个可以包含多个地址记录的客户记录。我下面的内容似乎不正确,是吗?我特别指的是MaxOccurs=无边界应用的位置。你觉得我应该怎么做?提前谢谢

    **

    <xs:element name="Customer">
      <xs:complexType>
      <xs:sequence>
      <xs:element name="CustomerCode" type="xs:string" /> 
      <xs:element name="Name" type="xs:string" /> 
      <xs:element name="Active" type="xs:int" /> 
      <xs:element name="SubNumber" type="xs:string" /> 
      <xs:element name="CustomerAccountNumber" type="xs:string" /> 
      <xs:element name="AccountBranchCode" type="xs:string" /> 
      <xs:element name="BranchLocationCode" type="xs:string" /> 
      <xs:element name="Attention" type="xs:string" /> 
      <xs:element maxOccurs="unbounded" name="Addresses">
      <xs:complexType>
      <xs:sequence>
      <xs:element name="Street1" type="xs:string" /> 
      <xs:element name="Street2" type="xs:string" /> 
      <xs:element name="City" type="xs:string" /> 
      <xs:element name="State" type="xs:string" /> 
      <xs:element name="Zip" type="xs:string" /> 
      <xs:element name="Country" type="xs:string" /> 
      <xs:element name="Description" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      <xs:element maxOccurs="unbounded" name="PhoneNumbers">
      <xs:complexType>
      <xs:sequence>
      <xs:element name="PhoneNumber" type="xs:string" /> 
      <xs:element name="PhoneType" type="xs:string" /> 
      </xs:sequence>
      </xs:complexType>
      </xs:element>
      </xs:sequence>
      </xs:complexType>
      </xs:element>
    

    **

    1 回复  |  直到 15 年前
        1
  •  1
  •   Sam    15 年前

    虽然我会将“地址”和“电话号码”元素分别重命名为“地址”和“电话号码”,但您所拥有的看起来是正确的。这意味着XML如下所示:

    <Customer>
        <CustomerCode>1234</CustomerCode>
        <Name>Customer</Name>
        ...
        <Address>
            ...
        </Address>
        <Address>
            ...
        </Address>
        <PhoneNumber>
            ...
        </PhoneNumber>
        <PhoneNumber>
            ...
        </PhoneNumber>
    </Customer>
    

    或者,您可能希望将重复的地址和电话号码元素包装在地址和电话号码中-如果您试图映射到WCF数据控件,这通常会使生活更轻松:

      <xs:element name="Addresses">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Address" maxOccurs="unbounded">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Street1" type="xs:string" />
                  <xs:element name="Street2" type="xs:string" />
                  <xs:element name="City" type="xs:string" />
                  <xs:element name="State" type="xs:string" />
                  <xs:element name="Zip" type="xs:string" />
                  <xs:element name="Country" type="xs:string" />
                  <xs:element name="Description" type="xs:string" />
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    

    这将给您带来如下好处:

    <Customer>
        <CustomerCode>1234</CustomerCode>
        <Name>Customer</Name>
        ...
        <Addresses>
            <Address>
                ...
            </Address>
            <Address>
                ...
            </Address>
        </Addresses>
        <PhoneNumbers>
            <PhoneNumber>
                ...
            </PhoneNumber>
            <PhoneNumber>
                ...
            </PhoneNumber>
        </PhoneNumbers>
    </Customer>