Существует метод, вызвавший исключение org.xml.sax.SAXParseException.когда попытаться проверить мои данные.Итак, для проверки моих входных данных я использую стандартный пакет javax.xml.validation.
У меня есть схема xsd, которая предполагает наличие 2-х контейнеров - пользователи и пользователи с ошибками могут содержать список элементов в каждой подпрограмме-container, есть Value и objectId (не обязательно)
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2018 sp1 (x64 by Organization-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://mynamespace" targetNamespace="http://mynamespace" elementFormDefault="qualified">
<complexType name="User_Type">
<sequence>
<element name="objectId" minOccurs="0" maxOccurs="1">
<annotation>
<documentation>(КМД)идентификатор риск-метрики, будет проигнорирован при операции добавления</documentation>
</annotation>
<simpleType>
<restriction base="string">
<maxLength value="36"/>
</restriction>
</simpleType>
</element>
<element name="Value" minOccurs="1" maxOccurs="1">
<simpleType>
<restriction base="string">
<maxLength value="1024"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<complexType name="Message_Type">
<sequence>
<element name="Text" minOccurs="0">
<simpleType>
<restriction base="string">
<maxLength value="2048"/>
</restriction>
</simpleType>
</element>
</sequence>
</complexType>
<element name="Users">
<complexType>
<sequence>
<element name="User" type="tns:User_Type" minOccurs="0" maxOccurs="unbounded"/>
<element name="Error" type="tns:Message_Type" minOccurs="0" maxOccurs="1"/>
</sequence>
</complexType>
</element>
</schema>
Этот входной код, который я хочу проверить - есть только один пользователь с полем.
String rm = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Users><User><Value>Value0</Value></User><Users>";
Этот код - этометод.Итак, rm - это проверка xml validationFile содержит ссылку на xsd И я просто читаю этот файл и пытаюсь проверить входной поток String
String rm = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Users><User><Value>Value0</Value></User><Users>";
String xmlFile = rm
String validationFile = "xsd/headVersions/users_1.8.xsd";
InputStream stream = new ByteArrayInputStream(xmlFile.getBytes(StandardCharsets.UTF_8));
StreamSource source = new StreamSource(stream);
ClassLoader classLoader = getClass().getClassLoader();
File file = new File(classLoader.getResource(validationFile).getFile());
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
schemaFactory.newSchema(file).newValidator().validate(source);
return true;
И яисключение синтаксического анализа, в котором подробно сказано, что
cvc-elt.1: не удается найти объявление элемента 'Users'.