XMLを扱うのに最低限必要だと思われる機能しか実装していません。 スキーマの解釈等は一切行いません。 (スキーマ指定部分を無視するわけではありません。単なる文字列として格納します) そのためエンティティを定義していても一切無視してしまいます。 これによる文章の破壊を防ぐために、HTML で使われるエンティティは定義していようがしていまいが文字列に変換します。 変換されるエンティティについては、このドキュメントの最後にあるエンティティリストを参照してください。
対応するエンコーディングは“UTF-8”、"UTF-16"(bigEndian, littleEndian両対応)のみです。
このドキュメントで string と指定されている部分には Unicode 文字列を入れて下さい。
Node | NodeList | NamedNodeMap | Element |
Attr | Text | CDATASection | ProcessingInstruction |
Comment | Document | DocumentType |
ESDOM Parser 兼 Serializer。オブジェクトではなくネームスペースです。
新しいESDOMツリーを構築します。
与えられたファイルハンドルから、ESDOMツリーを構築します。
このメソッドを呼び出した後は、ファイルがバイナリモードになっていることに注意してください。
また、呼び出し時はparseFromFile( *HANDLE )
というようにしてください。
与えられたデータを元に、ESDOMツリーを構築します。
ESDOMツリーからxmlドキュメントを作成して、指定されたファイルハンドルの、
現在のファイルポインタ以降に書き込みます。
このメソッドを呼び出した後は、ファイルがバイナリモードになっていることに注意してください。
また、呼び出し時は、例えば
serializeToFile( $docment, UTF_8, *HANDLE )
というようにしてください。
UTF_8
UTF_16BE
UTF_16LE
UTF_16BE_NONBOM
UTF_16LE_NONBOM
ESDOMツリーからxmlドキュメントを作成して返します。
UTF_8
UTF_16BE
UTF_16LE
UTF_16BE_NONBOM
UTF_16LE_NONBOM
ノードタイプの値はDOM Level1と同じです。 DOM同様、継承元というだけで表に出てこないオブジェクトです。
ノードタイプによる各属性値の内容の違いは以下の通りです。
定数 | 値 | nodeName | nodeValue | attributes | childNodes |
---|---|---|---|---|---|
ELEMENT_NODE | 1 | タグ名 | - | 属性を保持する NamedNodeMap | 子を保持する NodeList |
ATTRIBUTE_NODE | 2 | 属性名 | 属性値 | - | - |
TEXT_NODE | 3 | #text | テキストの内容 | - | - |
CDATA_SECTION_NODE | 4 | #cdata-section | CDATAセクションの内容 | - | - |
PROCESSING_INSTRUCTION_NODE | 7 | ターゲット | ターゲットを除いた内容全部 | - | - |
COMMENT_NODE | 8 | #comment | コメントの内容 | - | - |
DOCUMENT_NODE | 9 | #document | - | - | ProcessingInstruction、 Comment、 DocumentType、及びルートエレメントを保持する NodeList |
DOCUMENT_TYPE_NODE | 10 | ドキュメントタイプ名(Document::doctype参照) | - | - | - |
このノードの名前。タイプに依存するので上記の表を参照のこと。
このノードの値。タイプに依存するので上記の表を参照のこと。
このノードのタイプを示す整数。上記の表を参照。
このノードの親ノード。
エレメントノードであれば、このノードのすべての子を含んだ NodeList。 それ以外はnull。
このノードの最初の子。 子ノードが無ければ null。
このノードの最後の子。 子ノードが無ければ null。
このノードの直前にある兄弟ノード。 該当するノードが無ければ null。
このノードの直後にある兄弟ノード。 該当するノードが無ければ null。
エレメントノードであれば、このノードの属性ノードを含んだ NamedNodeMap。 それ以外はnull。
子ノードリスト内の、 refChild の前に newChild を挿入します。 refChild が null である場合は、newChild を子ノードのリストの最後に追加します。
子ノードリストの中の oldChild を newChild で置き換えます。 newChild が既にESDOMツリーの中にある場合には、ツリーから外された後に置き換えられます。
子ノードを子のリストから取り除きます。
ノード newChild をこのノードの子のリストの末尾に追加します。 newChild が既にESDOMツリーの中にある場合には、ツリーから外された後に追加されます。
ノードが子を持っているか否かを確認します。
ノードを複製します。複製したノードは親を持ちません。
順序付きの Node のリスト。
リストのノード数。
リストのindex番目の項目を返します。
複数ノードを持つマップ。名前で検索できる。
マップの項目数。
名前を元にマップ内のノードを取得します。
マップの項目を追加・変更します。
名前を元にノードマップからノードを削除します。 ESDOMはスキーマを解釈しないので、 DOMと違いデフォルト値がスキーマで定義されていようがさっくり消してそれっきりです。
マップのindex番目の項目を返します。
DOMのElementとほとんど同じです。 Node の属性値、メソッドを全て継承しています。
名前を元にエレメントの属性を得ます。
新しい属性を追加したり、既存の属性の値を変えたりします。
指定された名前の属性を削除します。 ESDOMはスキーマを解釈しないので、 DOMと違いデフォルト値がスキーマで定義されていようがさっくり消してそれっきりです。
名前を元にエレメントの属性を得ます。
新しい属性を追加したり、既存の属性の値を変えたりします。
oldAttr を、属性マップから削除します。 ESDOMはスキーマを解釈しないので、 DOMと違いデフォルト値がスキーマで定義されていようがさっくり消してそれっきりです。
子孫のエレメントの内、指定されたタグ名を持つ物のリストを取得します。
子孫ノードのうち、隣り合った Text 同士を統合します。
Element の属性を持つノードです。 ESDOMツリーに直接現れることはありません。
Attr は、Node の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。
テキストを保持するノードです。
Text は、Node の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。
『<![CDATA[
』で始まり 『]]>
』で終わる部分です。
CDATASection は、Text の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。 ただし、Text を継承しているといっても Element::normalize で隣接する CDATASection 同士が 統合されることはありません。
CDATASection は、xmlの仕様上、nodeValue に']]>'
を含むことは許されません。
ESDOM では、もし間違って含んでいた場合、serialize 時に']] '
というふうに
'>'
をスペース(0x20)に置き換えて補正します。
処理命令を表すオブジェクトです。 XML文書内では
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
のように宣言されている部分です。ただし、ESDOMではXML宣言はProcessingInstructionではありません。
また、ProcessingInstruction は、ESDOMツリー内では Document の子でしかありえません。
ProcessingInstruction は、Node の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。
ProcessingInstruction は、xmlの仕様上、nodeValue に'?>'
を含むことは許されません。
ESDOM では serialize 時にこれを'? >'
というふうにスペース(0x20)を挿入して補正します。
コメントを保持するノードです。
Comment は、Node の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。
Comment は、xmlの仕様上、nodeValue に'-->'
を含むことや、終端が'-'
であることは許されません。
ESDOM では serialize 時にこれらをそれぞれ'-- >'
、'- '
というふうにスペース(0x20)を
挿入して補正します。
DOMのDocumentとほとんど同じです。Node の属性値、メソッドを全て継承しています。
ドキュメントタイプ情報が入ったDocumentType。 ESDOM::serialize時以外は内部で使用されません。
ドキュメントのルートエレメント。
XMLドキュメントのスタンドアローン文書宣言。 出力時に明示的に宣言したくない場合はnullを指定しておけばよい。
エレメントを作ります。
テキストノードを作ります。
コメントノードを作ります。
CDATAセクションノードを作ります。
このドキュメント内で、与えられたタグ名をもつすべてのエレメントの NodeList を返します。 リストの順番は、ドキュメントで現れた順です。
与えられたidをもつエレメントを返します。
XMLドキュメントのドキュメントタイプを設定します。
ドキュメントタイプを保持するノードです。 DOMと違って、ESDOMではドキュメントタイプはただの文字列であり、DocumentTypeノードは子を持ちません。 下記の例では背景を赤くした部分の文字列が、nodeNameに格納されます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
例2:
<!DOCTYPE document [
<!ENTITY lt "&#60;">
<!ENTITY gt ">">
<!ENTITY amp "&#38;">
<!ENTITY apos "'">
<!ENTITY quot """>
<!ELEMENT aa (#PCDATA)>
<!ELEMENT bb (#PCDATA)>
<!ELEMENT cc (aa|bb)*>
<!ELEMENT dd (#PCDATA)>
<!ELEMENT ee (cc,(dd*))>]>
]>
DocumentType は、Node の属性値、メソッドを全て継承しています。 オーバーロードされた属性、メソッドはありません。
エンティティ | 文字 | エンティティ | 文字 | エンティティ | 文字 | エンティティ | 文字 | エンティティ | 文字 | ||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
" | " | Î | Î | &oelig | œ | &upsilon | υ | &forall | ∀ | ||||
& | & | Ï | Ï | &Scaron | Š | &phi | φ | &part | ∂ | ||||
&apos | ' | Ð | Ð | &scaron | š | &chi | χ | &exist | ∃ | ||||
< | < | Ñ | Ñ | &Yuml | Ÿ | &psi | ψ | &empty | ∅ | ||||
> | > | Ò | Ò | &fnof | ƒ | &omega | ω | &nabla | ∇ | ||||
  | Ó | Ó | &circ | ˆ | &thetasym | ϑ | &isin | ∈ | |||||
¡ | ¡ | Ô | Ô | &tilde | ˜ | &upsih | ϒ | ¬in | ∉ | ||||
¢ | ¢ | Õ | Õ | &Alpha | Α | &piv | ϖ | &ni | ∋ | ||||
£ | £ | Ö | Ö | &Beta | Β | &ensp | &prod | ∏ | |||||
¤ | ¤ | × | × | &Gamma | Γ | &emsp | &sum | ∑ | |||||
¥ | ¥ | Ø | Ø | &Delta | Δ | &thinsp | &minus | − | |||||
¦ | ¦ | Ù | Ù | &Epsilon | Ε | &zwnj | | &lowast | ∗ | ||||
§ | § | Ú | Ú | &Zeta | Ζ | &zwj | | &radic | √ | ||||
¨ | ¨ | Û | Û | &Eta | Η | &lrm | | &prop | ∝ | ||||
© | © | Ü | Ü | &Theta | Θ | &rlm | | &infin | ∞ | ||||
ª | ª | Ý | Ý | &Iota | Ι | &ndash | – | &ang | ∠ | ||||
« | « | Þ | Þ | &Kappa | Κ | &mdash | — | &and | ∧ | ||||
¬ | ¬ | ß | ß | &Lambda | Λ | &lsquo | ‘ | &or | ∨ | ||||
­ | | à | à | &Mu | Μ | &rsquo | ’ | &cap | ∩ | ||||
® | ® | á | á | &Nu | Ν | &sbquo | ‚ | &cup | ∪ | ||||
¯ | ¯ | â | â | &Xi | Ξ | &ldquo | “ | &int | ∫ | ||||
° | ° | ã | ã | &Omicron | Ο | &rdquo | ” | &there4 | ∴ | ||||
± | ± | ä | ä | &Pi | Π | &bdquo | „ | &sim | ∼ | ||||
² | ² | å | å | &Rho | Ρ | &dagger | † | &cong | ≅ | ||||
³ | ³ | æ | æ | &Sigma | Σ | &Dagger | ‡ | &asymp | ≈ | ||||
´ | ´ | ç | ç | &Tau | Τ | &bull | • | &ne | ≠ | ||||
µ | µ | è | è | &Upsilon | Υ | &hellip | … | &equiv | ≡ | ||||
¶ | ¶ | é | é | &Phi | Φ | &permil | ‰ | &le | ≤ | ||||
· | · | ê | ê | &Chi | Χ | &prime | ′ | &ge | ≥ | ||||
¸ | ¸ | ë | ë | &Psi | Ψ | &Prime | ″ | &sub | ⊂ | ||||
¹ | ¹ | ì | ì | &Omega | Ω | &lsaquo | ‹ | &sup | ⊃ | ||||
º | º | í | í | &alpha | α | &rsaquo | › | &nsub | ⊄ | ||||
» | » | î | î | &beta | β | &oline | ‾ | &sube | ⊆ | ||||
¼ | ¼ | ï | ï | &gamma | γ | &frasl | ⁄ | &supe | ⊇ | ||||
½ | ½ | ð | ð | &delta | δ | &euro | € | &oplus | ⊕ | ||||
¾ | ¾ | ñ | ñ | &epsilon | ε | &image | ℑ | &otimes | ⊗ | ||||
¿ | ¿ | ò | ò | &zeta | ζ | &weierp | ℘ | &perp | ⊥ | ||||
À | À | ó | ó | &eta | η | &real | ℜ | &sdot | ⋅ | ||||
Á | Á | ô | ô | &theta | θ | &trade | ™ | &lceil | ⌈ | ||||
 |  | õ | õ | &iota | ι | &talefsym | ℵ | &rceil | ⌉ | ||||
à | à | ö | ö | &kappa | κ | &larr | ← | &lfloor | ⌊ | ||||
Ä | Ä | ÷ | ÷ | &lambda | λ | &uarr | ↑ | &rfloor | ⌋ | ||||
Å | Å | ø | ø | &mu | μ | &rarr | → | &lang | 〈 | ||||
Æ | Æ | ù | ù | &nu | ν | &darr | ↓ | &rang | 〉 | ||||
Ç | Ç | ú | ú | &xi | ξ | &harr | ↔ | &loz | ◊ | ||||
È | È | û | û | &omicron | ο | &crarr | ↵ | &spades | ♠ | ||||
É | É | ü | ü | &pi | π | &lArr | ⇐ | &clubs | ♣ | ||||
Ê | Ê | ý | ý | &rho | ρ | &uArr | ⇑ | &hearts | ♥ | ||||
Ë | Ë | þ | þ | &sigmaf | ς | &rArr | ⇒ | &diams | ♦ | ||||
Ì | Ì | ÿ | ÿ | &sigma | σ | &dArr | ⇓ | ||||||
Í | Í | &OElig | Œ | &tau | τ | &hArr | ⇔ |