Release-Informationen zum XML-Zuordnungseditor

© Copyright International Business Machines Corporation 2005. Alle Rechte vorbehalten.

Release-Informationen

1.0 Beschreibung
2.0 Einschränkungen
3.0 Bekannte Probleme und Strategien zur Behebung von Problemen
   3.1 Elementebereich wird individuell angezeigt, wenn minOccurs nicht 0 oder 1 ist
   3.2 Falsche XSL wird generiert, wenn eine konstante Zuordnung für einen Gruppenverweis definiert wird
   3.3 Falsche XSL wird generiert, wenn ein Bereichsunterprogramm mit einem Gruppenverweis ausgeführt wird

1.0 Beschreibung

Diese Datei mit Release-Informationen enthält aktuelle Informationen zu Einschränkungen, Problemen und Strategien zur Behebung von Problemen für den XML-Zuordnungseditor von WebSphereR Integration Developer:

2.0 Einschränkungen

Keine

3.0 Bekannte Probleme und Strategien zur Behebung von Problemen

3.1 Elementebereich wird individuell angezeigt, wenn minOccurs nicht 0 oder 1 ist

Wenn Sie Ihr Element mit minOccurs UNGLEICH 0 oder 1 in Ihrem XSD-Schema definieren, also in etwa wie folgt:

<element maxOccurs="max_integer" minOccurs="min_integer" name="elementName" type="yourType"/>

wobei:

dann werden zwei oder mehr Einträge mit elementName im XML-Zuordnungseditor angezeigt, wenn Sie dieses XSD-Schema als Quelle oder als Ziel verwenden.   Wenn Sie einen Zuordnungsabgleich vom übergeordneten Element mit elementName ausführen, wird elementName mehrfach zugeordnet. Dies kann zu unerwünschten Zuordnungen führen.

Problemumgehung 1:
Ordnen Sie jeden Eintrag von elementName zu, bevor Sie einen Zuordnungsabgleich vom übergeordneten Element ausführen.

Problemumgehung 2:
Legen Sie für minOccurs 0 oder 1 fest.

3.2 Falsche XSL wird generiert, wenn eine konstante Zuordnung für einen Gruppenverweis definiert wird

Angenommen, Sie verfügen über einen komplexen Typ in Ihrem XSD-Schema, der den Gruppenverweis ähnlich wie in dem folgenden Beispiel verwendet:

<complexType name="MyType1">
    <sequence>
      <group ref="xsd1:myType1"/>
    </sequence>
</complexType>

  <group name="myType1">
    <sequence>
      <element name="emplID">
 <simpleType>
          <restriction base="int"/>
        </simpleType>       
      </element>
      <element name="location">      
        <simpleType>
          <restriction base="string">
            <maxLength value="10"/>
          </restriction>
 </simpleType>
      </element>
      <element name="data">       
        <simpleType>
          <restriction base="string">
            <maxLength value="1"/>
          </restriction>
        </simpleType>
      </element>
    </sequence>
  </group>

Wenn Sie dieses XSD-Schema als Ziel im XML-Zuordnungseditor verwenden und versuchen, emplID einem konstanten Wert zuzuordnen, dann wird die von dieser Zuordnung generierte XSL falsch sein.

Hier folgt die Problemumgehung:

  1. Ordnen Sie das Element (emplID) dem Stammelement in der Quellenbaumstruktur zuerst zu und verwenden Sie die Option zum Definieren der XSLT-Funktion..., um den konstanten Wert zuzuordnen.
  2. Ordnen Sie die restlichen Elemente (Position (location), Daten (data)) in der Gruppe den gewünschten Werten zu.

Die als Ergebnis generierte XSL wird richtig sein.

3.3 Falsche XSL wird generiert, wenn ein Bereichsunterprogramm mit einem Gruppenverweis ausgeführt wird

Angenommen Schema 1 hat folgenden Inhalt:

<xsd:complexType name="Raw_Materials_Type">
    <xsd:sequence>
      <xsd:element minOccurs="0" name="materialid" type="xsd:int"/>
      <xsd:element minOccurs="0" name="quantity" type="xsd:int"/>     
    </xsd:sequence>
</xsd:complexType>

<xsd:element maxOccurs="unbounded" minOccurs="1" name="RawMaterials" type="Raw_Materials_Type"/>
     
Und angenommen Schema 2 hat folgenden Inhalt:

<xsd:element maxOccurs="3" minOccurs="3" name="MaterialDataSet" type="reservedmaterialdataset"/>
<complexType name="reservedmaterialdataset">
    <sequence>
      <group ref="xsd1:reservedmaterialdatasetGroup"/>
    </sequence>
</complexType>
<group name="reservedmaterialdatasetGroup">
    <sequence>
      <element name="matID" type="xsd:int"/>
      <element name="qty" type="xsd:int"/>
    </sequence>
</group>

Wenn Sie Schema 1 mit Hilfe des XML-Zuordnungseditors zu Schema 2 zuordnen und versuchen, Zuordnungen (einschließlich aller untergeordneter Elemente) für Raw_materials to MaterialDataSet zu erstellen, dann wird die generierte XSL falsch sein.

Problemumgehung 1:
Ändern Sie minOccurs="3" in minOccurs="0" für Schema 2 und führen Sie einen Zuordnungsabgleich für diese beiden Elemente aus.  Die generierte XSL wird richtig sein.

Problemumgehung 2:

  1. Zuordnung erstellen von materialid zu der ersten MaterialDataSet/matID
  2. Definieren der XSLT-Funktion... für die erste MaterialDataSet/matID mit Hilfe von XPath Expression von /RawMaterials[1]/materialid/text()
  3. Zuordnung erstellen von der Menge (quantity) zur ersten MaterialDataSet/qty
  4. Definieren der XSLT-Funktion... für die erste MaterialDataSet/qty mit Hilfe von XPath Expression von /RawMaterials[1]/quantity/text()
  5. Zuordnung erstellen von materialid zur zweiten MaterialDataSet/matID
  6. Definieren der XSLT-Funktion... für die zweite MaterialDataSet/matID mit Hilfe von XPath Expression von /RawMaterials[2]/materialid/text()
  7. Zuordnung erstellen von der Menge (quantity) zur zweiten MaterialDataSet/qty
  8. Definieren der XSLT-Funktion... für die zweite MaterialDataSet/qty mit Hilfe von XPath Expression von /RawMaterials[2]/quantity/text()
  9. Zuordnung erstellen von materialid zur dritten MaterialDataSet/matID
  10. Definieren der XSLT-Funktion... für die dritte MaterialDataSet/matID mit Hilfe von XPath Expression von /RawMaterials[3]/materialid/text()
  11. Zuordnung erstellen von der Menge (quantity) zur dritten MaterialDataSet/qty
  12. Definieren der XSLT-Funktion... für die dritte MaterialDataSet/qty mit Hilfe von XPath Expression von /RawMaterials[3]/quantity/text()
  13. Speichern Sie die Zuordnung und generieren Sie die XSL
  14. Öffnen Sie die XSL-Datei und suchen Sie nach einem Konstrukt wie:
        <xsl:template name="MaterialDataSet">
             <reservedRawMatDataSet>
        ...
        <xsl:template name="MaterialDataSet_1">
             <reservedRawMatDataSet>
        ...
        <xsl:template name="MaterialDataSet_2">
             <reservedRawMatDataSet>
        ...
  15. Suchen Sie die Zeile:
     <xsl:call-template name="MaterialDataSet"/>
  16.  Fügen Sie nach dieser Zeile die folgende Zeile hinzu:

    <xsl:call-template name="MaterialDataSet_1"/>
    <xsl:call-template name="MaterialDataSet_2"/>

Jetzt wird die XSL-Schablone richtig aufgerufen und entspricht Ihren Zuordnungen im XML-Zuordnungseditor.