고유 한 네임 스페이스를 사용하도록 기존 스키마를 업데이트하려고하므로 나중에 다른 스키마로 가져 와서 사용중인 유형이 가져온 스키마XSD 유효성 검사 : 루트 요소를 찾을 수없는 네임 스페이스
기본 및 대상 네임 스페이스를 변경하려고 시도했지만 스키마 유효성 검사로 인해 루트 노드가 손상되거나 숨겨졌습니다. 내가 볼 수있는 것부터 다른 네임 스페이스에 내 루트 요소를 숨겼지만 원하는 결과를 얻으려면 어떻게 구성해야하는지 확신 할 수 없습니다. 여기
내가 검증XML
<Parent Id="P">
<Child Id="C"/>
</Parent>
XSD에게
<xsd:schema targetNamespace="http://myNameSpace.com"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://myNameSpace.com"
elementFormDefault="qualified" >
<xsd:element name="Child">
<xsd:complexType>
<xsd:attribute name="Id" />
</xsd:complexType>
</xsd:element>
<xsd:element name="Parent">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="Child" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="Id" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
을 시도했다 기본적인 예입니다
유효하지 않습니다.
오류 - 줄 1, 19 : org.xml.sax.SAXParseException; lineNumber : 1; columnNumber : 19; cvc-elt.1 : 요소 ' '의 선언을 찾을 수 없습니다.
아 좋아, 네임 스페이스가 XML과 스키마에서 명시 적이어야한다는 것을 알지 못했습니다. 불행히도 나는 내가 바꿀 수있는 것에 의해 제한되어 있으며 XML을 변경할 수 없다. 이 같은 네임 스페이스를 사용할 수 있습니까? – Mark
그렇습니다. XML 문서의 루트 요소의 네임 스페이스는 네임 스페이스가있는 XML의 유효성을 검사하는 데 사용할 XSD의 대상 네임 스페이스와 일치해야합니다. – kjhughes
빠른 응답 주셔서 감사합니다! – Mark