gpt4 book ai didi

rest - WADL:来自外部 xsd 的复杂类型

转载 作者:行者123 更新时间:2023-12-03 20:58:13 24 4
gpt4 key购买 nike

我需要使用下面的 wadl 文件测试身份验证过程:

<application xmlns="http://research.sun.com/wadl/2006/10" 
xmlns:sis="http://sis.thecompany.com/" >
<grammars>
<include href="http://localhost/wadl/sis.xsd"/>
</grammars>
<resources base="http://192.168.10.139">
<resource path="/user/sign_in">
<method name="POST" id="Authentication">
<request>
<param name="user" type="sis:user" required="true"/>
<representation mediaType="application/xml" element="sis:user"/>
</request>
<response status="201">
<representation mediaType="application/xml"/>
<fault status="401" />
</response>
</method>
</resource>
</resources>

将此文件导入 soapUI Pro 后,单击“请求”没有任何 Action 。原因是 soapUI Pro 没有看到 xsd 中存在的元素“sis:user”,并认为它只是一些具有未定义类型的单个元素。你能告诉 wadl 文件有什么问题吗?

下面是使用的 sis.xsd 架构:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="SIS" targetNamespace="http://sis.thecompany.com/" elementFormDefault="qualified" xmlns="http://sis.thecompany.com/" xmlns:mstns="http://sis.thecompany.com/" xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<xs:element name="application">
<xs:complexType>
<xs:all>
<xs:element name="user" minOccurs="0">
<xs:xs:complexType>
<xs:all minOccurs="1">
<xs:element name="login" type="xs:string" />
<xs:element name="password" type="xs:string" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>

下一个问题。如果 soapUI Pro 将正确解析来自 xsd 的 complexType 元素用户 - 来自 soapUI Pro 的 POST 数据将是下一个:

<sis:user><sis:login>admin</sis:login><sis:password>admin!</sis:password></sis:user>

但是由于额外的前缀'sis:',这将被服务器拒绝。服务器只支持下一个格式

<user><login>admin</login><password>admin!</password></user>

请指教。

最佳答案

我能给出的最好建议是停止使用 WADL。找到一个像样的 HTTP 库和 XML 解析器,无论您使用什么语言,然后创建您的 XML 文件并发布它。只需几行代码即可实现此目的。

通过按照您的方式使用 WADL 和 xsd,您所实现的只是在客户端和服务器之间创建紧密耦合。这将抵消 REST 系统应该带来的大部分好处。您还不如坚持使用 SOAP,至少工具是成熟的。

关于rest - WADL:来自外部 xsd 的复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4445097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com