Я работаю с Jaxb 2.x и пытался проверить XML-документ с данным XSD, используя следующий учебник
hers - это код, который я написал
unmarshaller.setSchema(schema);
SAXSource source = new SAXSource(new InputSource(xmlFileLocation));
Validator validator = schema.newValidator();
validator.setErrorHandler(new XMLErrorHandler<Object>());
try {
validator.validate(source);
} catch (SAXException e) {
и мой класс XMLErrorHanlder имеет следующую подпись
public class XMLErrorHandler<T> implements ErrorHandler {
public void error(SAXParseException exception) throws SAXException {
xmlUnmarshaller.setValidationFlag(true);
log.error(
"Line:Col[" + exception.getLineNumber()
+ ":" + exception.getColumnNumber()
+ "]:" + exception.getMessage());
exception.printStackTrace();
}
}
}
код предупреждения и фатальный был удален теперь он проверяет XML с помощью XSD, но он показывает только первую обнаруженную ошибку, в то время как я хочу получить печать на консоли все ошибки и предупреждение на консоли
Я не уверен, где я делаю неправильную помощь в этом будет полезной
Edit1 вот часть файла XSD
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="destination" type="Destination"/>
<xs:complexType name="Destination">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="destinationID" type="xs:string" minOccurs="0"/>
<xs:element name="shortDescription" type="xs:string" minOccurs="0"/>
<xs:element name="longDescription" type="xs:string" minOccurs="0"/>
<xs:element name="stateID" type="xs:string"/>
<xs:element name="typeCode" type="xs:int"/>
<xs:element name="countryCode" type="xs:string"/>
<xs:element name="categories" type="xs:string"/>
<xs:element name="transport" type="Transport" minOccurs="0" maxOccurs="1"/>
<xs:element name="cultures" type="Cultures" minOccurs="0"/>
<xs:element name="events" type="Events" minOccurs="0" maxOccurs="1"/>
<xs:element name="placesToVisit" type="PlacesToVisit" minOccurs="0" maxOccurs="1"/>
<xs:element name="contacts" type="Contact" minOccurs="0" maxOccurs="1"/>
<xs:element name="addresses" type="address" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
</xs:complexType>
и файл XML
<destination xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="destination.xsd">
<name>Palampur</name>
<destinationID>PLP</destinationID>
<shortDescription>shortDescription</shortDescription>
<longDescription>longDescription</longDescription>
<typeCode>0</typeCode>
<categories>categories</categories>
что мое предположение после выполнения R & D состоит в том, что есть некоторая проблема с структурой XSD или сгенерированным XML, но я не уверен, что он