Как добавить XML-схему в веб-сервис Coldfusion

Я создаю новый веб-сервис, в котором формат данных должен быть строгим с использованием XMLSchema. Но я не смог найти способ применить подробную XML-схему в веб-сервисе Coldfusion

веб-служба передает информацию в виде XML, и они должны быть в строгом формате, который должен быть выделен в схеме XML, чтобы не было передано неверной информации.

<wsdl:types>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:element name="UpdatePendingTicketsRequest">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="SIMS_REPLY_NAVISION_TO_INTOUCH">
        </xs:element>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="UpdatePendingTicketsResponse">
        <xs:simpleType>             
            <xs:restriction base="xs:string">
                <xs:enumeration value="OK"/>
                <xs:enumeration value="ERROR_PROCESSING"/>
            </xs:restriction>
        </xs:simpleType>
        </xs:element>
        <xs:simpleType name="ST_STATUS">
            <xs:restriction base="xs:integer">
                <xs:enumeration value="1"/>
                <xs:enumeration value="2"/>
                <xs:enumeration value="99"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:element name="TRANSACTIONS">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="TRANSACTION" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="TRANSACTION">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="ORIGINAL_TRANSACTION_ID"/>
                    <xs:element ref="STATUS"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="STATUS">
            <xs:complexType>
                <xs:simpleContent>
                    <xs:extension base="ST_STATUS">
                        <xs:attribute name="description" use="required">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="DUPLICATE"/>
                                    <xs:enumeration value="OK"/>
                                    <xs:enumeration value="PROBLEM"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:attribute>
                    </xs:extension>
                </xs:simpleContent>
            </xs:complexType>
        </xs:element>
        <xs:element name="SIMS_REPLY_NAVISION_TO_INTOUCH">
            <xs:complexType>
                <xs:sequence>
                    <xs:element ref="DATETIME"/>
                    <xs:element ref="TRANSACTIONS"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>
        <xs:element name="ORIGINAL_TRANSACTION_ID" type="xs:string"/>
        <xs:element name="DATETIME" type="xs:dateTime"/>
        <xs:element name="FaultStructure">
        <xs:complexType >
            <xs:sequence>
                <xs:element type="xs:string" name="FaultCode"/>
                <xs:element type="xs:string" name="FaultString"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    </xs:schema>
</wsdl:types>

Это образец XML-схемы, который используется для проверки полезной нагрузки. Но когда я создаю то же самое в Coldfusion, это все, что я получаю.

<wsdl:types>
  <schema targetNamespace="http://rpc.xml.coldfusion" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://xml.apache.org/xml-soap"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="CFCInvocationException">
    <sequence/>
   </complexType>
  </schema>
 </wsdl:types>

Я много искал и не нашел конкретного решения для этого.

1 ответ

Это может быть не ответ, но я всегда рекомендую не создавать веб-сервис в ColdFusion для получения XML-документа в качестве аргументов. Вместо этого используйте строку XML в качестве аргумента, который позже вы можете преобразовать в документ XML с помощью xmlParse(). У меня был такой опыт в прошлом, и позже мне нужно преобразовать его в строковый аргумент xml.

Спасибо Притеш

Другие вопросы по тегам