【问题标题】:Manually editing BizTalk wcf-adapter schema手动编辑 BizTalk wcf 适配器架构
【发布时间】:2010-02-14 06:54:21
【问题描述】:

我不熟悉以我现在(手动)的方式生成模式,并且在这里需要一些帮助。我有一个模式,如下所示,我不确定它是否正确。我想要的是一个可以包含多个地址记录的客户记录。我在下面的内容似乎不正确,或者是吗?我特别指的是我应用了 MAXOCCURS=UNBOUNDED 的地方。你觉得我应该怎么做呢?提前致谢

**

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

**

【问题讨论】:

    标签: xml wcf xsd biztalk


    【解决方案1】:

    您看到的内容看起来是正确的,尽管我会将“Addresses”和“PhoneNumbers”元素分别重命名为“Address”和“PhoneNumber”。这意味着 XML 如下所示:

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

    或者,您可能希望将重复的 Address 和 PhoneNumber 元素包装在 Addresses 和 PhoneNumbers 中 - 如果您尝试映射到 WCF DataContracts,这通常会使生活更轻松:

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

    【讨论】:

      猜你喜欢
      • 2011-08-07
      • 2018-06-08
      • 2019-04-11
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-22
      • 2012-02-04
      相关资源
      最近更新 更多