は、私がこれを書いている場合Canonical XML SpecJAXBとXML列聖
に従ってJAXBによって非整列化私のXMLをcanonizeしたいですか?
もしそうでなければ、JAXBはその仕事をすることができますか?
は、私がこれを書いている場合Canonical XML SpecJAXBとXML列聖
に従ってJAXBによって非整列化私のXMLをcanonizeしたいですか?
もしそうでなければ、JAXBはその仕事をすることができますか?
はに基づいて私の最初の答えです:http://www.w3.org/TR/2001/REC-xml-c14n-20010315#Terminology
1 - 文書はUTF-8エンコーディングにデフォルトJAXBマーシャリングではUTF-8
でエンコードされています。
2 - ラインので、これは実際には適用されません。改行は保持されません
JAXBを解析する前に、入力上の#xAへ正規化壊れます。
3 - 有効プロセッサ
によってあなたはJAXB実装用に検証プロセッサを持っているUnmarshaller
にXmlSchema
を指定することができるかのように属性値は、正規化されている:
4-文字とパースされたエンティティの参照が置換されます
ほとんどのJAXB実装では、この作業を使用される基礎となるパーサに委譲します。
5 CDATAセクションは、文字コンテンツ
標準JAXB APIはあなたがCDATAセクションにマーシャリングすることはできませんに置き換えているので、あなたはここでOKです。
6 - XML宣言と文書型定義(DTD)は、JAXBはDTD宣言を書き込むない
除去されます。空の要素は、開始終了タグのペア
としてJAXBが空の要素を書き込みません開始終了タグに変換されます -
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
7:あなたは、以下のようにして、XML宣言を削除することができますペア。このための回避策を考え出すことができるはずです。
8 - 文書要素および開始タグと終了タグ内の空白の外側には、正規化され
9 - 文字コンテンツのすべての空白が保持され
(改行の正規化中に除去文字を除きます) JAXBの実装では、文字コンテンツのすべての空白が保持されます(開始タグと要素タグの間)。
10 - 属性値の区切り文字は、基準とMOXY JAXB実装は、属性値の区切りのための二重引用符を使用して引用符(二重引用符)
に設定されています。
11 - 属性値と文字コンテンツ内の特殊文字は文字に置き換えられますが、
を参照するJAXBは
"
12と
&
と&
、<
と<
、および"
を交換します - 余分な名前空間宣言が各要素から削除されましたJAXBの実装は余分な名前空間宣言を記述しないように最善を尽くしますが、追加の名前空間が宣言されていないことを保証することはできません。この問題に対処するための回避策がいくつかあります。
13 - デフォルト属性は、各要素に追加され
TBD
14 - 辞書式順序は、各要素の名前空間宣言と属性
JAXBに課されます実装は各要素の名前空間宣言と属性の順序付けを保証しません。
いいえ、私の意見では、私はJAXB_FORMATTED_OUTPUT
のプロパティに依存しませんでした。言及した仕様の例を使ってテストすることができます。以下は
感謝:)のために : 7 - 空の要素は、タグのペア をエンド開始するために変換されて、私は空のオブジェクトのJAXB書き込み を作成する場合、それは私が –
Baptiste
は最終的に私は、ライブラリを見つけたと思う大丈夫ます。http://santuario.apache .orgはw3cに従って標準化を提供しています – Baptiste