public interface CDATASection extends Text
CharacterData.data
属性は、CDATAセクションに含まれるテキストを保持します。これにはCDATAセクションの外部でエスケープする必要のある文字が含まれる可能性があり、直列化用に選択された文字エンコーディング(「charset」)によっては、一部の文字をCDATAセクションの一部として書き出すことができない可能性があります。
CDATASection
インタフェースは、Text
インタフェースを介してCharacterData
インタフェースから継承します。隣接するCDATASection
ノードは、Node
インタフェースのnormalize
メソッドの使用によってマージされません。
CDATAセクションの内容に対する字句のチェックは実行されないため、内容に"]]>"
の文字シーケンスが含まれる可能性があります。これは、「XML 1.0」の2.7項に準拠しているCDATAセクションでは不正です。この文字シーケンスの存在によって、直列化中に致命的エラーが発生します。つまり、直列化の前に、このCDATAセクションを分割する必要があります(DOMConfiguration
インタフェースのパラメータ"split-cdata-sections"
も参照)。
注: CDATASection
内ではマークアップが認識されないため、直列化の際、文字数値の参照をエスケープ・メカニズムとして使用することはできません。したがって、含まれている文字の一部を表現できない文字エンコーディングを使用してCDATASection
を直列化する場合は、何らかの対策を行う必要があります。そうしないと、整形式のXMLを生成できません。
注意: 直列化処理の問題の解決方法の1つには、文字の直前でCDATAセクションを終了し、文字参照またはエンティティ参照を使用してその文字を出力し、それ以降、テキスト・ノードに含まれる文字用に新しいCDATAセクションを開始するという方法があります。ただし、一部のコード変換ライブラリは、書込み時にエンコードされない文字があっても、エラーや例外を返しません。このため、直列化中に破壊されたデータがないかどうかを特定するのは困難です。
「Document Object Model (DOM) Level 3 Core Specification」も参照してください。
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
getWholeText, isElementContentWhitespace, replaceWholeText, splitText
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
バグまたは機能を送信
Java は米国ならびにその他の国における Oracle Corporation およびその関連企業の商標または登録商標です。
Copyright © 2005, 2014, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.