如何在 WSDL 中创建限制为 <|<=|>|>= 的有效模式

发布于 2024-09-03 03:24:22 字数 540 浏览 5 评论 0 原文

这就是我在 WSDL 的架构部分中指定的字段必须是比较运算符

                <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:pattern value="&lt;|&gt;|&lt;=|&gt;=|="/>
                        </xsd:restriction>
                </xsd:simpleType>

SoapUI 抱怨 WSDL 的这一部分,我尝试将值设置为带有非特殊字符的值,并且 WSDL 是有效的。所以我尝试将整个长字符串替换为 值=“>”它有效但 value="<"无效,并且 value=">"也无效。我的问题是,为什么 WSDL 验证需要 >被双重逃脱?

主要问题是,如何在模式值内提供有效的小于端。

This is what I have in my schema section of my WSDL to specify the field has to be comparison operators

                <xsd:simpleType>
                        <xsd:restriction base="xsd:string">
                            <xsd:pattern value="<|>|<=|>=|="/>
                        </xsd:restriction>
                </xsd:simpleType>

SoapUI complains about this part of the WSDL, I tried to set the value to something with non special characters and the WSDL is valid. So I tried to replace that whole long string to be
value=">gt;" and it valid but value="<lt;" is not valid, and value=">" is also not valid. My question is, why does the WSDL validation need > to be double escaped?

The main question is, how to provide a valid less than side within the pattern value.

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

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

发布评论

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

评论(2

妄想挽回 2024-09-10 03:24:22

这实际上可能是 SoapUI 中的一个错误。我尝试在 Apache Xalan(Java 中)中使用以下架构和 XML:

架构:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.foo.com/"
  xmlns:tns="http://www.foo.com/"
  elementFormDefault="qualified">

  <element name="foo">
    <simpleType>
      <restriction base="string">
        <pattern value="<|>|<=|>=|="/>
      </restriction>
    </simpleType>
  </element>

</schema>

示例 XML:

<foo xmlns='http://www.foo.com/'>></foo>

并且它验证良好。当我尝试这样做时:

<foo xmlns='http://www.foo.com/'>abc</foo>

正如预期的那样,我收到以下错误:cvc-pattern-valid: Value 'abc' is not facet-valid on pattern '<|>|<=|>; =|=' 对于类型'#AnonType_foo'。

我的建议是尝试使用枚举。例如:

<simpleType>
  <restriction base="string">
    <enumeration value="<" />
    <enumeration value=">" />
    <enumeration value="<=" />
    <enumeration value=">=" />
    <enumeration value="=" />
  </restriction>
</simpleType>

看看 SoapUI 是否更喜欢这个。希望这有帮助!

This might actually be a bug in SoapUI. I tried using the following schema and XML with Apache Xalan (in Java):

Schema:

<schema xmlns="http://www.w3.org/2001/XMLSchema"
  targetNamespace="http://www.foo.com/"
  xmlns:tns="http://www.foo.com/"
  elementFormDefault="qualified">

  <element name="foo">
    <simpleType>
      <restriction base="string">
        <pattern value="<|>|<=|>=|="/>
      </restriction>
    </simpleType>
  </element>

</schema>

Sample XML:

<foo xmlns='http://www.foo.com/'>></foo>

and it validates fine. When I try this instead:

<foo xmlns='http://www.foo.com/'>abc</foo>

I get the following error, as expected: cvc-pattern-valid: Value 'abc' is not facet-valid with respect to pattern '<|>|<=|>=|=' for type '#AnonType_foo'.

My recommendation is to try using an enum instead. For example:

<simpleType>
  <restriction base="string">
    <enumeration value="<" />
    <enumeration value=">" />
    <enumeration value="<=" />
    <enumeration value=">=" />
    <enumeration value="=" />
  </restriction>
</simpleType>

And see if SoapUI likes this better. Hope this helps!

合约呢 2024-09-10 03:24:22

我想我解决了我自己的问题,为什么你会在你的模式中定义允许值之一是

                        <xsd:restriction base="xsd:string">
                            <xsd:pattern value="=|&gt;|&gt;=|&lt;|&lt;=|&lt;&gt;|[Ii][Nn]|[Nn][Oo][Tt] [Ii][Nn]|[Ll][Ii][Kk][Ee]"/>
                        </xsd:restriction>

I think I solved my own problem, why would you define in your schema that one of the allowable value is

                        <xsd:restriction base="xsd:string">
                            <xsd:pattern value="=|&gt;|&gt;=|&lt;|&lt;=|&lt;&gt;|[Ii][Nn]|[Nn][Oo][Tt] [Ii][Nn]|[Ll][Ii][Kk][Ee]"/>
                        </xsd:restriction>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文