2011-07-09 7 views
0

XMLBeansを使用してxmlを生成しています。 出力XML文書に必要な要素に対してCDATA Wrapperを自動的にインクルードする方法はありますか? 例えば、私の出力XMLは次のようになります。マーシャリング中にCDATAラッパーを含める

<employee> 
<name><![CDATA[NAME]]></name> 
<address><![CDATA[ADDRESS]]></address> 
</employee> 

1)私たちは、私がXMLBeansのを使用して私のプログラムで<name>要素の値を設定したときに、出力XMLは名前が含まれている必要があることを、このようにXSDを書くことができます要素の代わりに<name><![CDATA[NAME]]></name>の代わりに

の2)XMLBeansに特定の要素のためのCDATA Wrapperを生成する方法がありますか?

お願いします。

+0

wiseguyが、好奇心旺盛であることを意味しない:なぜあなたにはこれが必要です? –

+0

要素自体が大きなxml値を持つ可能性があり、その場合値はCDATAでラップされると予想されます – John

答えて

1

私はXMLBeansユーザーではありません。経験豊かな人が違った書き方をしているとすれば、それは信頼してください。

CDataBookmarkおよびXmlOptions .setCDATAEntityCountThreshold、setUseCDataBookmarks、setSaveCDataLengthThresholdを参照してください。

テキストにCDataBookmarkを設定する方法に関する文書は明確ではありません。 this bit from Nabbleを参照してください。

+0

XMLBeansを経由する方法があるかどうかわかりません。それはXSDを介して可能ですか?オプション1で言及したものです)。 ありがとう – John

+0

ブックマークを挿入してオプションをオンにしても機能しませんでしたか?そして、いいえ、これを行うXSDには何もありません。ところで... CDATAを使用しない場合は、代わりに "<"と "&"の文字エンティティを出力する必要があります(例:アンパサンドの場合は&)。あなたがいない場合は、あなたが物を出力している方法で何かが間違っています。 –

2

this threadを参照してください。要するに:

node.setFoo("ABCDE12345"); 
XmlCursor c = node.xgetFoo().newCursor(); 
c.toFirstContentToken(); 
c.setBookmark(CDataBookmark.CDATA_BOOKMARK); 

そしてあなたは、ドキュメントのようなXmlOptionsに渡すようにしてください「保存」するために行くとき:

XmlOptions opts = new XmlOptions().setUseCDataBookmarks(); 
node.xmlText(opts); 
関連する問題