У меня есть файл XML, который мне нужно прочитать, и он выглядит примерно так:
<container time="">
<level1 id="1:0:0" name="Some Name">level1 Description
<level2 id="1:1:0" name="Some Name">level2 Description
<level3 id="1:1:1" name="Some Name">level3 Description</level3>
<level3 id="1:1:2" name="Some Name">level3 Description</level3>
</level2>
</level1>
At build time I am using xjc
to generate my classes for me.
<javac includeantruntime="false" srcdir="${build.dir}/configuration_src"
destdir="${build.dir}/generated_jars"
classpathref="example.jars"
debug="on">
<include name="**"/>
</javac>
Проблема, с которой я сталкиваюсь, заключается в том, что <level1>
имеет описание, но также имеет 0 to many
<level2>
. Как мне настроить мою схему, чтобы об описании позаботились?
<xs:schema targetNamespace="http://example.com/container" xmlns="http://example.com/container" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="container">
<xs:complexType>
<xs:sequence>
<xs:element ref="level1" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="level1">
<xs:complexType>
<xs:sequence>
<xs:element ref="level2" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="level2">
<xs:complexType>
<xs:sequence>
<xs:element ref="level3" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="level3">
<xs:complexType>
<xs:attribute name="id" type="xs:string"></xs:attribute>
<xs:attribute name="name" type="xs:string"></xs:attribute>
</xs:complexType>
</xs:element>
When I try to add a type="xs:string"
to any of my <xs:element>
for example
<xs:element ref="level1" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
Он жалуется [ERROR] s4s-att-not-allowed: Attribute 'type' cannot appear in element 'element'.