4

StAX APIのXMLEventWriterを使用して、XMLドキュメントを最初から作成しようとしています。

デフォルトの名前空間属性を発行する方法がわかりません。

たとえば、デフォルトの名前空間URI文字列は「http://www.liquibase.org/xml/ns/dbchangelog/1.9」です。これをXMLルート要素にxmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"として表示したいと思います。

ここの魔法のレシピは何ですか?XMLEventWriter.setDefaultNamespace()が機能しませんでした。

ありがとう、レアード

4

2 に答える 2

3

プロパティIS_REPAIRING_NAMESPACESを使用して、この動作を設定します。

XMLEventFactory events = XMLEventFactory.newInstance();
QName bar = new QName("urn:bar", "bar");
XMLOutputFactory factory = XMLOutputFactory.newInstance();
factory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, true);
XMLEventWriter writer = factory.createXMLEventWriter(System.out);
writer.add(events.createStartDocument());
writer.setDefaultNamespace("urn:bar");
writer.add(events.createStartElement(bar, null, null));
writer.add(events.createEndDocument());
writer.flush();

上記のコードは次のように出力します。

<?xml version="1.0"?><bar xmlns="urn:bar"></bar>
于 2010-06-26T08:50:52.617 に答える
-1

「set*」の代わりに「write*」を使用します

javax.xml.stream.XMLStreamWriter.writeDefaultNamespace(String)
于 2010-06-29T22:39:11.793 に答える