JAXB/XJC - XML 模式解析失败
JAXB/XJC - XML Schema Parsin Fail
我目前正在使用 JAXB(及其工具 XJC)"translate" XML 模式(.xsd)自动生成 java 类.
我执行以下命令:
java -jar "../lib/com.sun.jaxb_1.0.0/jaxb-xjc.jar" schema.xsd
但是,显然,我没有编译我的模式并得到以下错误:
parsing a schema...
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'heureType' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 9 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'demandeCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 24 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'infoCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 28 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'criType' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 33 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'initLiaison' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 46 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'listeCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 50 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'fichierCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 67 of file:***/Workspace_XML/fichier_cri/schema.xsd
Failed to parse a schema.
对不起法语,但错误可以翻译成这样:
[ERROR] s4s-elt-invalid-content.1 : The content of 'heureType' is not valid. The element 'element' is not valid, is misplaced or appears to many times.
我尝试以多种方式更改我的代码顺序,但没有任何效果。
这是我的代码:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- the Root Element -->
<xs:element name="fichier_cri" type="fichierCri"/>
<!-- ########## LEVEL 0 ########## -->
<xs:complexType name="fichierCri">
<xs:element name="init_liaison" type="initLiaison" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence>
<xs:element name="liste_cri" type="listeCri" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- ########## LEVEL 1 ########## -->
<xs:complexType name="initLiaison">
<xs:element name="source" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="listeCri">
<xs:element name="demande_cri" type="demandeCri" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="info_cri" type="infoCri" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence>
<xs:element name="cri" type="criType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- ########## LEVEL 2 ########## -->
<xs:complexType name="demandeCri">
<xs:element name="fichier_erreur" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="infoCri">
<xs:element name="nb_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="num_proch_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="criType">
<xs:element name="num_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="num_cri" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="heure" type="heureType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="data" type="dataType" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<!-- ########## LEVEL 3 ########## -->
<xs:complexType name="heureType">
<xs:element name="secondes" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="nano_secondes" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="dataType">
<xs:sequence>
<xs:element name="octet" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- *** end *** -->
</xs:schema> *
有人知道这件事吗? :/
错误消息表明您的 xsd 文件在句法上不正确。这是真实的。如果您编辑 xsd 来解决问题,错误消息应该会消失。
定义复杂类型时:
<complexType name="foo">
<sequence>
<element ... />
<element ... />
</sequence>
</complexType>
确保复杂类型中的所有元素都在序列元素中。 <sequence>
表示有效文档将按指定顺序包含所包含的元素。
当然,还有其他选项可用于定义您的复杂类型。例如,您可以使用 <choice>
而不是 <sequence>
,这意味着有效文档将包含所包含的元素之一。
值得查看模式文件的模式 (xsd)。查看架构文件顶部的 link (http://www.w3.org/2001/XMLSchema)。
我目前正在使用 JAXB(及其工具 XJC)"translate" XML 模式(.xsd)自动生成 java 类.
我执行以下命令:
java -jar "../lib/com.sun.jaxb_1.0.0/jaxb-xjc.jar" schema.xsd
但是,显然,我没有编译我的模式并得到以下错误:
parsing a schema...
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'heureType' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 9 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'demandeCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 24 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'infoCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 28 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'criType' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 33 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'initLiaison' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 46 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'listeCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 50 of file:***/Workspace_XML/fichier_cri/schema.xsd
[ERROR] s4s-elt-invalid-content.1 : Le contenu de 'fichierCri' n'est pas valide. L'élément 'element' n'est pas valide, est mal placé ou compte trop d'occurrences.
line 67 of file:***/Workspace_XML/fichier_cri/schema.xsd
Failed to parse a schema.
对不起法语,但错误可以翻译成这样:
[ERROR] s4s-elt-invalid-content.1 : The content of 'heureType' is not valid. The element 'element' is not valid, is misplaced or appears to many times.
我尝试以多种方式更改我的代码顺序,但没有任何效果。
这是我的代码:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- the Root Element -->
<xs:element name="fichier_cri" type="fichierCri"/>
<!-- ########## LEVEL 0 ########## -->
<xs:complexType name="fichierCri">
<xs:element name="init_liaison" type="initLiaison" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence>
<xs:element name="liste_cri" type="listeCri" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- ########## LEVEL 1 ########## -->
<xs:complexType name="initLiaison">
<xs:element name="source" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="listeCri">
<xs:element name="demande_cri" type="demandeCri" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="info_cri" type="infoCri" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence>
<xs:element name="cri" type="criType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- ########## LEVEL 2 ########## -->
<xs:complexType name="demandeCri">
<xs:element name="fichier_erreur" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="infoCri">
<xs:element name="nb_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="num_proch_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="criType">
<xs:element name="num_erreur" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="num_cri" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="heure" type="heureType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="data" type="dataType" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<!-- ########## LEVEL 3 ########## -->
<xs:complexType name="heureType">
<xs:element name="secondes" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="nano_secondes" type="xs:int" minOccurs="0" maxOccurs="unbounded"/>
</xs:complexType>
<xs:complexType name="dataType">
<xs:sequence>
<xs:element name="octet" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- *** end *** -->
</xs:schema> *
有人知道这件事吗? :/
错误消息表明您的 xsd 文件在句法上不正确。这是真实的。如果您编辑 xsd 来解决问题,错误消息应该会消失。
定义复杂类型时:
<complexType name="foo">
<sequence>
<element ... />
<element ... />
</sequence>
</complexType>
确保复杂类型中的所有元素都在序列元素中。 <sequence>
表示有效文档将按指定顺序包含所包含的元素。
当然,还有其他选项可用于定义您的复杂类型。例如,您可以使用 <choice>
而不是 <sequence>
,这意味着有效文档将包含所包含的元素之一。
值得查看模式文件的模式 (xsd)。查看架构文件顶部的 link (http://www.w3.org/2001/XMLSchema)。