Mam tylko elementarne zrozumienie schematu XML. Jest to w zasadzie moja pierwsza interakcja z nimi w jakikolwiek poważny sposób i mam pewne problemy. Czytałem na XSD na google i wszystko wygląda na ten plik w górę iw górę.Czy jest coś radykalnie niewłaściwego w tym schemacie XML?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="credits">
<xs:complexType>
<xs:sequence>
<xs:element ref="property" maxOccurs="16" minOccurs="13" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="property" type="xs:string">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute ref="name" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="item" type="xs:string"/>
<xs:attribute name="name" type="xs:string">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="example1"/>
<xs:enumeration value="example2"/>
<xs:enumeration value="example3"/>
<xs:enumeration value="example4"/>
<xs:enumeration value="example5"/>
<xs:enumeration value="example6"/>
<xs:enumeration value="example7"/>
<xs:enumeration value="example8"/>
<xs:enumeration value="example9"/>
<xs:enumeration value="example10"/>
<xs:enumeration value="example11"/>
<xs:enumeration value="example12"/>
<xs:enumeration value="example13"/>
<xs:enumeration value="example14"/>
<xs:enumeration value="example15"/>
<xs:enumeration value="example16"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:schema>
Oto jak ja ładuje go:
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schemaXSD = schemaFactory.newSchema(new File ("test.xsd"));
Dostaję wyjątek jak poniżej:
org.xml.sax.SAXParseException: src-element.3: Element "właściwość" ma zarówno atrybut "typ" i "anony" dziecko typu mous. Tylko jeden z jest dozwolony dla elementu.
Dzięki za pomoc TAK! Zalecane są także ogólne porady dotyczące czytania/używania schematów stworzonych przez innych! : D
Istnieje szereg IDE który może wykryć tego rodzaju błąd w czasie edycji (tj. przed przesłaniem XSD do własnego kodu). [Eclipse J2E] (http://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/heliossr1) na przykład pokaże małe czerwone znaczniki na prawym marginesie z tymi samymi komunikatami o błędach, o których wspomniałeś)). –