2011-07-18 19 views
1

XMLStreamWriter.writeStartElement(prefix,localName,namespaceURI)doc link)を名前空間に接頭辞の無い結合XMLStreamWriter.writeStartElement(接頭辞、ローカル名、名前空間URI):

名前空間URIパラメータがnullではないが、それは名前空間URIに接頭辞のバインドに失敗しました:

writeStartElement("manifest","manifest","urn:oasis:names:tc:opendocument:xmlns:manifest:1.0") 

結果ファイル:

<manifest:manifest> 

しかし、それは次のようになります。

<manifest:manifest xmlns:manifest="urn:oasis:names:tc:opendocument:xmlns:manifest:1.0"> 
+0

結果<マニフェスト:マニフェスト> – guhai

+0

予想<マニフェスト:マニフェストのxmlns:マニフェスト= "URN:オアシス:名:TC:OpenDocumentの:のxmlns:マニフェスト:1.0"> – guhai

答えて

1

ストリームライターの作成に使用されたXMLOutputFactoryで、javax.xml.stream.isRepairingNamespacesプロパティをtrueに設定します。デフォルトではオフになっています。

てXMLStreamWriterにwriteStartElement()のjavadocにAccoding:

例外: XMLStreamExceptionを - 名前空間はURIが接頭辞にバインドされていないとjavax.xml.stream.isRepairingNamespacesに設定されていない場合真

(何らかの理由で公式のJavadocは、例外の詳細テキストは表示されませんが、私の地元のダウンロードのものが行う)

こと、またはあなたは、Eする必要があります明示的にsetPrefix()を呼び出して名前空間を最初に登録します。

+0

私は2つの方法を試みた: セットsRepairingNamespacesをtrueとなる writeStartElementの後にwriteNamespaceを追加します。 新しい問題が発生し、名前空間が再宣言され複製されました。 – guhai

0

writeStartElementの前にsetPrefixを設定する必要があると思います。私はあなたがsRepairingNamespacesを必要とするとは思わない - しかし、私はよくわからない。

関連する問題