【问题标题】:XSD not validating against xmlXSD 未针对 xml 进行验证
【发布时间】:2017-10-05 16:24:57
【问题描述】:

我是 XSD 的新手,不知道为什么我的 XSD 没有验证。我收到以下错误:

s4s-elt-invalid-content.1:“parametersInfo”的内容无效。元素“complexType”无效、放错位置或出现过于频繁。

cvc-complex-type.2.4.d:发现以元素“异常”开头的无效内容。此时不需要子元素。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<service id="IServiceREST">
            <inherit>
                <parent>Remote</parent>
            </inherit>
            <package>com.module</package>
            <include>java.rmi.Remote</include>
            <include>java.net.*</include>
            <include>java.io.*</include>
            <abstract_method id="getContent">
                <visibility>public</visibility>
                <parameters>
                    <argument type="URL">url</argument>
                    <argument type="int">timeout</argument>
                </parameters>
                <throw>
                    <exception>MalformedURLException</exception>
                    <exception>IOException</exception>
                </throw>
                <return>String</return>
            </abstract_method>
            <abstract_method id="deleteUser">
                <visibility>public</visibility>
                <parameters>
                    <argument type="String">username</argument>
                </parameters>
                <return>void</return>
            </abstract_method>
</service>

XSD:

<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:complexType name="serviceInfo">
        <xs:sequence>
            <xs:element name="inherit" type="inheritInfo" minOccurs="1" maxOccurs="unbounded"/>
            <xs:element name="package" type="xs:string" />
            <xs:element name="include" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
            <xs:element name="abstract_method" type="abstract_methodInfo" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute type="xs:string" name="id" />
    </xs:complexType>

    <xs:complexType name="inheritInfo">
        <xs:sequence>
            <xs:element type="xs:string" name="parent" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="abstract_methodInfo">
        <xs:sequence>
            <xs:element type="xs:string" name="visibility" minOccurs="0" maxOccurs="1"/>
            <xs:element type="parametersInfo" name="parameters" />    
            <xs:element type="throwInfo" name="throw" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element type="xs:string" name="return" minOccurs="1" />
        </xs:sequence>
        <xs:attribute type="xs:string" name="id" />
    </xs:complexType>


    <xs:complexType name="throwInfo">
        <xs:sequence>
            <xs:element type="xs:string" name ="exception" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="parametersInfo">
            <xs:complexType type="xs:string" name="argument">
             <xs:sequence>
                <xs:element name="URL" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element name="timeout" type="xs:integer" minOccurs="0" maxOccurs="unbounded"/>
             </xs:sequence>
            </xs:complexType>
    </xs:complexType>
    <xs:element name="service" type="serviceInfo"/>
</xs:schema>    

我错过了什么吗?我想通过使用复杂类型并引用它们来分解它来使它更容易......

【问题讨论】:

    标签: xml validation xsd


    【解决方案1】:

    您的parametersInfo 类型声明为

    <xs:complexType name="parametersInfo">
      <xs:complexType type="xs:string" name="argument">
        <xs:sequence>
          <xs:element name="URL" type="xs:string" 
                      minOccurs="0" maxOccurs="unbounded"/>
          <xs:element name="timeout" type="xs:integer" 
                      minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
      </xs:complexType>
    </xs:complexType>
    

    XSD complexType 元素不能作为complexType 的子元素出现。我不知道你想做什么,但这不是这样做的方法。

    您可能需要完成一两个关于 XSD 的教程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      • 2011-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多