内容结束之前的预期元素。 Soap XSD 验证

发布于 2025-01-10 16:54:11 字数 1557 浏览 0 评论 0原文

我正在使用肥皂,我收到了服务人员的回复。我单击鼠标右键并选择验证,但出现错误“内容结尾之前预期元素 xxx...”

在 xsd 架构中我已经

elementFormDefault="合格"

AdditionalAtribute 正如名称所示可以为空,因此有时它具有值,但并非总是如此。当它有价值时,一切正常,但当它为空时,我的响应验证给了我这种沟通。

这就是我的 XSD 片段的样子:

       <xsd:element name="listOfThings" maxOccurs="unbounded" minOccurs="0">
               <xsd:complexType>
                 <xsd:sequence>
                
                <xsd:element name="thingCategory" type="xsd:string" minOccurs="0"/>
                <xsd:element name="thingName" type="xsd:string" minOccurs="0"/>
                <xsd:element name="thingValue" type="xsd:string" minOccurs="0"/>
                <xsd:element name="additionalAttubute" type="xsd:string" minOccurs="0"/>
                
                  </xsd:sequence>
               </xsd:complexType>
          </xsd:element>

XML 示例

<tns:listOfThings>
    <tns:thing>
        <tns:thingCategory>CATEGORY</tns:thingCategory>
        <tns:thingName>NAME</tns:thingName>
        <tns:thingValue>A</tns:thingValue>
    </tns:thing>
    <tns:thing>
        <tns:thingCategory>CATEGORY2</tns:thingCategory>
        <tns:thingName>NAME2</tns:thingName>
        <tns:thingValue>B</tns:thingValue>
        <tns:additionalAttribute>C</tns:additionalAttribute>
    </tns:thing>
</tns:listOfThings>

I am using soap and i have response from service. I click right mouse button and choose validate and i have errors 'Expected element xxx before the end of the content..."

In the xsd schema i have already

elementFormDefault="qualified"

AdditionalAtribute as name says is nullable so sometimes it has value but not always. When it has value everything is ok but when it is null my response validation gives me this communicate.

This is what my XSD fragment looks like:

       <xsd:element name="listOfThings" maxOccurs="unbounded" minOccurs="0">
               <xsd:complexType>
                 <xsd:sequence>
                
                <xsd:element name="thingCategory" type="xsd:string" minOccurs="0"/>
                <xsd:element name="thingName" type="xsd:string" minOccurs="0"/>
                <xsd:element name="thingValue" type="xsd:string" minOccurs="0"/>
                <xsd:element name="additionalAttubute" type="xsd:string" minOccurs="0"/>
                
                  </xsd:sequence>
               </xsd:complexType>
          </xsd:element>

XML example

<tns:listOfThings>
    <tns:thing>
        <tns:thingCategory>CATEGORY</tns:thingCategory>
        <tns:thingName>NAME</tns:thingName>
        <tns:thingValue>A</tns:thingValue>
    </tns:thing>
    <tns:thing>
        <tns:thingCategory>CATEGORY2</tns:thingCategory>
        <tns:thingName>NAME2</tns:thingName>
        <tns:thingValue>B</tns:thingValue>
        <tns:additionalAttribute>C</tns:additionalAttribute>
    </tns:thing>
</tns:listOfThings>

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

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

发布评论

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

评论(2

和影子一齐双人舞 2025-01-17 16:54:11

您的架构和 XML 之间存在多个不匹配

  1. 您实际上在 listOfThings 下有一个节点 things,该节点的 maxoccurrs 应该是无界的,而不是 listOfThings
  2. additionalAttubute在架构 <> 中XML 中的additionalAttribute,模式中的拼写错误?

下面是您的架构应该与该 XML 匹配的样子

        <tns:element name="listOfThings">
          <tns:complexType>
            <tns:sequence>
              <tns:element minOccurs="0" maxOccurs="unbounded" name="thing">
                <tns:complexType>
                  <tns:sequence>
                    <tns:element minOccurs="0" name="thingCategory" type="tns:string" />
                    <tns:element minOccurs="0" name="thingName" type="tns:string" />
                    <tns:element minOccurs="0" name="thingValue" type="tns:string" />
                    <tns:element minOccurs="0" name="additionalAttribute" type="tns:string" />
                  </tns:sequence>
                </tns:complexType>
              </tns:element>
            </tns:sequence>
          </tns:complexType>
        </tns:element>

You have multiple mismatches between your schema and your XML

  1. You have actually have a node things under listOfThings that should have the maxoccurs unbounded rather than listOfThings
  2. additionalAttubute in the schema <> additionalAttribute in the XML, a spelling mistake in the schema?

Below is what your schema should look like to match that XML

        <tns:element name="listOfThings">
          <tns:complexType>
            <tns:sequence>
              <tns:element minOccurs="0" maxOccurs="unbounded" name="thing">
                <tns:complexType>
                  <tns:sequence>
                    <tns:element minOccurs="0" name="thingCategory" type="tns:string" />
                    <tns:element minOccurs="0" name="thingName" type="tns:string" />
                    <tns:element minOccurs="0" name="thingValue" type="tns:string" />
                    <tns:element minOccurs="0" name="additionalAttribute" type="tns:string" />
                  </tns:sequence>
                </tns:complexType>
              </tns:element>
            </tns:sequence>
          </tns:complexType>
        </tns:element>
苦行僧 2025-01-17 16:54:11

尝试使用空元素:

<tns:listOfThings>
<tns:thing>
    <tns:thingCategory>CATEGORY</tns:thingCategory>
    <tns:thingName>NAME</tns:thingName>
    <tns:thingValue>A</tns:thingValue>
    <tns:additionalAttribute></tns:additionalAttribute>
</tns:thing>
<tns:thing>
    <tns:thingCategory>CATEGORY2</tns:thingCategory>
    <tns:thingName>NAME2</tns:thingName>
    <tns:thingValue>B</tns:thingValue>
    <tns:additionalAttribute>C</tns:additionalAttribute>
</tns:thing>
</tns:listOfThings>

Try with empty element:

<tns:listOfThings>
<tns:thing>
    <tns:thingCategory>CATEGORY</tns:thingCategory>
    <tns:thingName>NAME</tns:thingName>
    <tns:thingValue>A</tns:thingValue>
    <tns:additionalAttribute></tns:additionalAttribute>
</tns:thing>
<tns:thing>
    <tns:thingCategory>CATEGORY2</tns:thingCategory>
    <tns:thingName>NAME2</tns:thingName>
    <tns:thingValue>B</tns:thingValue>
    <tns:additionalAttribute>C</tns:additionalAttribute>
</tns:thing>
</tns:listOfThings>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文