2

私はstaxmateを使ってxml文書を書き出しています。「pre:elem」のようなプレフィックス/名前空間を使用して xml 要素を書き出したいと考えています。これを手動で "pre" + ":" + "elem" として構成し、staxmate api の addElement メソッドに渡すことができます。しかし、それを行うより良い方法はありますか?

4

1 に答える 1

1

手動での構築は動作が保証されていないため、適切な解決策ではありません (おそらく既にご存じでしょう)。正しい方法は、Namespace インスタンス (推奨されるプレフィックス付き) を取得し、それを書き込みに使用することです。したがって、次のようなものです:

SMOutputDocument doc = ...;
SMNamespace ns = doc.getNamespace("http://mynamespaces.com", "pre");
SMOutputElement elem = doc.addElement(ns, "root");
// ... and so forth

名前空間インスタンスは、任意のコンテナー (SMOutputDocument、SMOutputElement) から取得できます。

名前空間オブジェクトを渡さない場合、デフォルトでは、URI "" を持つ名前空間が想定されます (プレフィックスなしにバインドする必要があります)。

(注: これをStaxMate FAQに追加してもらいます)

于 2011-01-05T22:13:55.237 に答える