2014-11-04 2 views
3

<xi:include> 태그가있는 xml 문서를 비선형하려고합니다. 그러나 SAXParser는 SAXParserFactory에이를 허용하도록 구체적으로 말하더라도 이것을 허용하지 않습니다.SAXParser에서 Xinclude를 허용하지 않습니다.

자바 코드 :

SAXParserFactory spf = SAXParserFactory.newInstance(); 
spf.setXIncludeaware(true); 
spf.setNamespaceAwere(true); 

spf.setFeature("http://apache.org/xml/features/xinclude", true); 
spf.setFeature("http://apache.org/xml/features/xinclude/fixup-base-uris", true); 

XMLReader xr = spf.newSAXParser().getXMLReader(); 
SAXSource source = new SAXSource(xr, new InputSource(inputStream)); 
JAXBElement<MyClass> el = unmarshaller.unmarshal(source, MyClass.class); 

XML 문서 내가 그것을 실행하면 나는이 예외가

<?xml version="1.0" encoding="UTF-8"?> 
<extension xmlns="http://www.example.com/test" xmlns:ext="http://www.example.com/test" xmlns:xi="http://www.w3.org/2003/XInclude"> 
    <visibility> 
     <resourceConstraints> 
      <resourceConstraint ext:resourceId="resourceOne"> 
       <role ext:show="true">AdminUsers</role> 
      </resourceConstraint> 
      <resourceConstraint ext:resourceId="resourceTwo"> 
       <role ext:show="true">AdminUsers</role> 
      </resourceConstraint> 
     </resourceConstraints> 
     <xi:include href="extraContent.xml" /> 
    </visibility> 
</extension> 

을 읽을 : 나는에서 <xi:include> 태그를 제거

org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 50; cvc-complex-type.2.4.a: Invalid content was found starting with element 'xi:include'. One of '{"http://www.example.com/test":resourceConstraints}' is expected. 

XML 문서, 파일이 잘 비동기입니다. unmarshaller에는 스키마가 첨부되어 있습니다. 스키마는 <xi:include>을 허용하지 않습니다.

답변

0

은 내가 xmlns:xi="http://www.w3.org/2001/XInclude"을 사용 했어야 동안 xmlns:xi="http://www.w3.org/2003/XInclude"을 사용

문제가 수정되었습니다!

관련 문제