у меня ниже xml сообщение
<web:Add xmlns:web="http://my/web/">
<web:a>1</web:a>
<web:b>2</web:b>
</web:Add>
Вот моя схема
<?xml version="1.0" encoding="utf-8"?>
<s:schema xmlns:s="http://www.w3.org/2001/XMLSchema" >
<s:element name="Add">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="a" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="b" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
Вот мой код
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
File f = new File("C:\\temp\\my.xsd");
Schema schema = factory.newSchema(f);
Validator validator = schema.newValidator();
Document requestDoc = getDocumentFromString(request,true);
validator.validate(new DOMSource(requestDoc));
Почему это не с
cvc-complex-type.2.4.a: Обнаружен недопустимый контент, начиная с элемента «web: a». Ожидается один из {{a} '.
если я изменю сообщение и приму префикс oul для таких элементов, как этот
<web:Add xmlns:web="http://my/web/">
<a>1</a>
<b>2</b>
</web:Add>
Тогда все работает. Зачем? оба сообщения являются действительными xml для предоставленной схемы.
Любая помощь приветствуется