Je suis nouveau à XSD et ne peux pas comprendre pourquoi mon XSD ne valide pas. J'obtiens les erreurs suivantes:XSD ne valide pas contre xml
s4s-elt-invalid-content.1: Le contenu de 'parametersInfo' n'est pas valide. L'élément 'complexType' est invalide, mal placé ou se produit trop souvent.
cvc-complex-type.2.4.d: Un contenu non valide a été trouvé en commençant par l'élément 'exception'. Aucun élément enfant n'est attendu à ce stade.
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>
Suis-je manque quelque chose? Je voulais le rendre plus facile à l'aide des types complexes et les références pour le décomposer ...