Я определяю схему, но при проверке ее в затмении выдает следующую ошибку:
[Ошибка]: 1125: 55: src-resol: не удается разрешить имя 'YesNoDoesNotApplyType'для (n) компонента 'определения типа'.
Моя схема выглядит следующим образом:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="9.00" id="R2014.1">
<xs:include schemaLocation="ATA_CommonTypes.xsd"/>
<xs:element name="ABT" type="YesNoDoesNotApplyType">
<xs:annotation>
<xs:documentation>Aborted Approach Indicator</xs:documentation>
</xs:annotation>
</xs:element>
</xs:schema>
и ATA_CommonTypes.xsd
выглядит следующим образом:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" version="2.00" id="R2007.1">
<xs:simpleType name="YesNoDoesNotApplyType">
<xs:restriction base="xs:string">
<xs:minLength value="1"/>
<xs:maxLength value="1"/>
<xs:enumeration value="D">
<xs:annotation>
<xs:documentation>Does Not Apply</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="N">
<xs:annotation>
<xs:documentation>No</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="Y">
<xs:annotation>
<xs:documentation>Yes</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Моя функция затмения выглядит следующим образом: и выдает ошибку из приведенной ниже строки. XSModel model = schemaLoader.load (input);
private SchemaAlertFormatterUtil(String schemaUriBase) {
try {
InputStream schemaInputStream =
this.getClass().getClassLoader().getResourceAsStream( schemaUriBase + CSDD_MM_XSD );
DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
XSImplementation xsImplementation =
( XSImplementation ) registry.getDOMImplementation( "XS-Loader" );
XSLoader schemaLoader = xsImplementation.createXSLoader( null );
LSInput input = new DOMInputImpl();
input.setByteStream( schemaInputStream );
XSModel model = schemaLoader.load( input );
annotationBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
// Read and add all element declarations
XSNamedMap elements = model.getComponents( XSConstants.ELEMENT_DECLARATION );
for ( int i = 0; i < elements.getLength(); i++ ) {
XSElementDeclaration item = ( XSElementDeclaration ) elements.item( i );
addItemToMapper( item.getName(), item.getAnnotation() );
}
// Read and add all attribute declarations
XSNamedMap attributes = model.getComponents( XSConstants.ATTRIBUTE_DECLARATION );
for ( int i = 0; i < attributes.getLength(); i++ ) {
XSAttributeDeclaration item = ( XSAttributeDeclaration ) attributes.item( i );
addItemToMapper( item.getName(), item.getAnnotation() );
}
} catch ( Exception exception ) {
LOGGER.error( "Error occured when loading CSDD_MM.xsd", exception );
}}