1
와 함께 자바에서 XML 스키마 검증 내가 가지고 여기접두사
<web:Add xmlns:web="http://my/web/">
<web:a>1</web:a>
<web:b>2</web:b>
</web:Add>
아래 XML 메시지 내 스키마 여기
<?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}'중 하나가 예상됩니다.
내가 메시지를 수정 한 다음 모든 작품이
<web:Add xmlns:web="http://my/web/">
<a>1</a>
<b>2</b>
</web:Add>
같은 요소에 대한 접두사 OUL을합니다. 왜? 두 메시지는 제공된 스키마에 대해 유효한 XML입니다. 도움이 필요합니다.
감사합니다. 그거였다! 다음을 추가하고 그것을 고정했습니다 elementFormDefault = "qualified" –
도와 줘서 기쁩니다. 귀하의 질문에 가장 잘 맞는 답을 왼쪽에있는 체크 표시를 클릭하여 "수락"하는 것은 관례입니다. –