У меня есть исходная схема, в которой адрес может быть задан либо в виде нескольких элементов «AddressLine», либо в виде нескольких элементов «Street», либо в виде комбинации. Моя схема назначения просто имеет несколько элементов "Street". У меня проблемы с отображением этого с помощью функтоидов (это не проблема с пользовательским XSLT, но я бы предпочел использовать графический метод для этой карты). Я попытался сопоставить оба исходных элемента с петлевым функтоидом, а затем из этого в элемент назначения, но это просто создает XSLT, который проходит через исходные элементы AddressLine и Street, но ничего не записывает в место назначения! 1001 *
Я вставил соответствующие разделы схем источника и назначения ниже:
Источник
<xsd:complexType name="Address">
<xsd:sequence>
<xsd:element name="AddressLine" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation>Free format address lines may be used instead of (or in addition to) specific Street etc elements.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Street" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="City" type="xsd:string" minOccurs="0"/>
<xsd:element name="State" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>State/County/Province</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="PostCode" type="xsd:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Post/ZIP code</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Country" minOccurs="0">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="Code" type="xsd:string" use="optional"/>
<xsd:attribute name="Codelist" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
Пункт назначения
<xs:element name="Address" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="Street" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="City" type="xs:string" minOccurs="0"/>
<xs:element name="State" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>State/County/Province</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PostCode" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Post/ZIP code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Country" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="Code" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>