2012-01-27 2 views

답변

10

XMLStreamWriter을 사용하는 경우 writeNamespace()writeAttribute() (또는 단지 writeAttribute())을 사용할 수 있습니다.

XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(System.out); 
xmlStreamWriter.writeStartDocument(); 
xmlStreamWriter.writeStartElement("YourRootElement"); 
xmlStreamWriter.writeNamespace("xsi", "http://www.w3.org/2000/10/XMLSchema-instance"); 
xmlStreamWriter.writeAttribute("http://www.w3.org/2000/10/XMLSchema-instance", "noNamespaceSchemaLocation", 
     "path_to_your.xsd"); 
xmlStreamWriter.writeEndElement(); 
xmlStreamWriter.flush(); 

출력 :

<?xml version="1.0" ?> 
<YourRootElement xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:noNamespaceSchemaLocation="path_to_your.xsd"></YourRootElement> 

XMLEventWriter를 들어, createAttribute()을 보내고 add() 그것을 할 수 있어야합니다.

감사합니다, 최대

+0

하이 맥스, 난 이미이 솔루션을 기대했다. 해명 해줘서 고마워. – Lars

+3

이것은 저에게 효과적 이었지만 XML은 완전히 검증되지 않았습니다. 검증 문제를 해결하기 위해 더 새로운 스키마 인스턴스를 'http : // www.w3.org/2001/XMLSchema-instance'로 지정해야했습니다. – Muel