2

私のxmlは以下のようなものです:-

<?xml version="1.0"?>
<create xmlns:xsi="https://csu.service-now.com">
    <sys_id xsi:type="xsd:string">30b78e589d5d0a00eba30ec92748d7fa</sys_id>
<number xsi:type="xsd:string">INC0135185</number>
</create>

バリデーションが成功するxsdを作成したいです。したがって、基本的には、その xsd によって、最初に webmethods でスキーマを作成し、その xml に対して xml を検証する必要があります。

私がこれまでに試したことは次のとおりです。

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="create">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="sys_id">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute ref="csu:type" xmlns:csu="https://csu.service-now.com"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
        <xs:element name="number">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute ref="csu:type" xmlns:csu="https://csu.service-now.com"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

しかし、webmethods でスキーマを作成するのに失敗しました。webmethod.i によると、これは有効な xsd ではないようです。

ここで助けてください。

4

1 に答える 1

1

苦労したい場合は、webMethods が理解できる XSD を作成することをお勧めします。

XSD を作成しなければならない理由はありますか?

webMethods で何が受け入れられるかを知る最も簡単な方法は、Web サービスを作成し、ブラウザーに WSDL URL をコピーして貼り付け、webMethods が " <xsd:schema ..> ... </xsd:schema>" 内のすべてを定義する方法を観察し、同じ構造を適用して独自のカスタム XSD を定義することです。

以下は私の頭のてっぺんから外れています:

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema 
    targetNamespace="http://some.target.namespace/test" 
    xmlns:tns="http://some.target.namespace/test" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="ServiceRequest" type="tns:ServiceRequest"/>
    <xsd:complexType name="ServiceRequest">
        <xsd:sequence>
            <xsd:element name="Create" nillable="false" type="tns:Create"/>
        </xsd:sequence>
    </xsd:complexType>  
    <xsd:complexType name="Create">
        <xsd:sequence>
            <xsd:element name="sys_id" nillable="true" type="xsd:string"/>
            <xsd:element name="number" nillable="true" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>  
</xsd:schema>

繰り返しになりますが、可能であれば、XSD を避けるようにしてください。XSDに関しては、WebMethodsは非常にうるさいです。

ある種の GUI ソフトウェアを使用して XSD を生成する場合、生成された XSD が webMethods と互換性がないことはほぼ確実です。

多くの場合、webMethods 内に XSD をインポートする代わりに、メモ帳で XSD を読み取り、ドキュメントとフィールドを手動で定義して webMethods の構造を手動で再現します。

于 2015-10-28T20:54:16.043 に答える