如何将 xml 模式添加到 Coldfusion Web 服务

发布于 2024-11-16 22:48:59 字数 4241 浏览 1 评论 0原文

我正在创建一个新的 Web 服务,其中的数据格式必须使用 XMLSchema 进行严格限制。但我找不到在 Coldfusion Web 服务中应用详细 xml 模式的方法,

该 Web 服务将信息作为 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>

我做了很多搜索,但从未找到具体的解决方案。

I am creating a new web service in which the data format should have to made strict using XMLSchema. But I could not find a way to apply detail xml schema in Coldfusion web service

the web service is passing information as XML and they need to be in a strict format which sould be spedicied in the XML Schema , so that No wrong information is passed.

<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>

This is the sample XML Schema which is used to validate the payload. But when i create the same in Coldfusion, this is all i get.

<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>

I did a lot of search and never found a concrete solution for it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命比纸薄 2024-11-23 22:48:59

这可能不是答案,但我总是建议不要在 ColdFusion 中构建 Web 服务来接收 xml 文档作为参数。相反,使用 xml 字符串作为参数,稍后您可以使用 xmlParse() 将其转换为 xml 文档。我过去有过这样的经验,后来我需要将它转换为 xml 字符串参数。

谢谢
普里泰什

This might not be answer but I always recommend that do not build webservice in ColdFusion to receive xml document as arguments. Instead use xml string as argument which later you can convert to xml document using xmlParse(). I had such experience in past and later I need to convert it to xml string argument.

Thanks
Pritesh

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文