2012-01-27 5 views

Trả lời

10

Nếu bạn sử dụng XMLStreamWriter, bạn chỉ có thể sử dụng writeNamespace()writeAttribute() (hoặc chỉ 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(); 

Output:

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

Đối XMLEventWriter, bạn sẽ có thể để làm điều đó bằng cách add() ing một createAttribute().

Trân trọng, Tối đa

+0

Xin chào Max, tôi đã mong đợi giải pháp này. Cảm ơn bạn đã làm rõ. – Lars

+3

Điều này làm việc cho tôi, nhưng XML XML của tôi không hoàn toàn xác nhận. Để khắc phục các vấn đề xác nhận của tôi, tôi cần xác định một cá thể lược đồ mới hơn là: 'http: // www.w3.org/2001/XMLSchema-instance'. – Muel