1

いくつかの子を持つドキュメントを (xsd スキーマから) 定義しました。これらの子は、正しい Xml 変換を行うために、何らかの順序である必要があります。

いくつかのマップ ステップを作成すると、要素の順序がドキュメント リファレンスで定義されているものと同じではありません。それを強制する方法は?

ドキュメント参照の順序は次のとおりです。 ここに画像の説明を入力

そして、ここでは、いくつかのマップ stemp の後の順序: ここに画像の説明を入力

データは正しいですが、順序が正しくありません。問題は、ドキュメントからサービスを使用して XmlString を作成するとdocumentToXMLString、順序が正しくないことです。

マッピングステップまたはxml生成で順序を強制する考えはありますか?

4

2 に答える 2

1

パラメータ「documentTypeName」を使用して、サービス pub.xml:documentToXMLString の完全修飾ドキュメント タイプ名を提供しようとしましたか? ドキュメント「IntegrationServer Build-In Service Reference」には次のように記載されています。

documentTypeName 文字列 オプション出力ドキュメントの構造と形式を説明するドキュメント タイプの完全修飾名 (examples.rtd:exampleRecord1 など)。このパラメーターを使用して、実行時にドキュメントに存在しない可能性のある要素が出力に含まれるようにしたり、結果の XML 文字列に要素が表示される順序を記述したりできます。

編集:wM 9.7を使用して例を追加

たとえば、次のような xml 文字列があります。

<?xml version="1.0"?>
<inputdoc>
    <field5>afds</field5>
    <field1>asdf</field1>
    <field3>asdf</field3>
    <field2>asdf</field2>
</inputdoc>

フィールド field1、field2、field3、field5 をこの順序で持つ IS ドキュメント タイプがあります。上記のxml文字列を含むxmlstringという名前の入力が1つあるサービスがあります。次のサービスを呼び出します。

  1. pub.xml:xmlStringToXMLNode : xml 文字列を xmldata 入力フィールドにマッピングする
  2. pub.xml:xmlNodeToDocument : 「documentTypeName」入力フィールドを使用せずにノードをドキュメントに変換する
  3. pub.xml:documentToXMLString : 入力フィールド「documentTypeName」と定義済みの IS ドキュメント タイプを使用して、ドキュメント インスタンスを XML 文字列に変換します。

これにより、次の XML 文字列が生成されます。

<?xml version="1.0"?>
<field1>asdf</field1>
<field2>asdf</field2>
<field3>asdf</field3>
<field5>afds</field5>

ご覧のとおり、順序が正しい方法で変更されました。

ご挨拶

ヘニング

于 2015-08-03T11:12:22.237 に答える
1

最も簡単なのは、XSD スキーマを変更することです。XSD「シーケンス」( XSD 要素 Wiki ) を使用して、要素の特定の順序を定義します。それが完了したら、webmethods 内で XSD を再インポートします。

XSD スキーマを変更できない場合は、フロー サービスでループを作成し、PersonalAddress ごとに各フィールドを標準/内部ドキュメント構造のフィールドにマップするという別のオプションがあります。そして最後に、documentToXMLString社内文書を呼び出します。

最適なオプションは、ドキュメント内の要素の順序に依存しないソリューションを設計することです。

お役に立てれば!

于 2015-08-05T17:22:41.203 に答える