ILSSerializer インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
には LSSerializer
、DOM ドキュメントを XML にシリアル化 (書き込み) するための API が用意されています。
[Android.Runtime.Register("org/w3c/dom/ls/LSSerializer", "", "Org.W3c.Dom.LS.ILSSerializerInvoker")]
public interface ILSSerializer : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("org/w3c/dom/ls/LSSerializer", "", "Org.W3c.Dom.LS.ILSSerializerInvoker")>]
type ILSSerializer = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 属性
- 実装
注釈
には LSSerializer
、DOM ドキュメントを XML にシリアル化 (書き込み) するための API が用意されています。 XML データは、文字列または出力ストリームに書き込まれます。 シリアル化中に行われた変更または修正は、シリアル化されたデータにのみ影響します。 Document
オブジェクトとその子は、シリアル化操作によって変更されることはありません。
XML データのシリアル化中、名前空間の修正は[DOM レベル 3 Core] 、付録 B で定義されているように行われます。[DOM レベル 2 Core] では、空の文字列を実際の名前空間 URI として使用できます。 namespaceURI
の が空のNode
文字列の場合、シリアル化によってとしてnull
扱われます。プレフィックスがある場合は無視されます。
LSSerializer
は、シリアル化のための任意のノード タイプを受け入れます。 型 Document
または Entity
のノードの場合、可能な場合は整形式 XML が作成されます (ドキュメントまたはエンティティが解析操作から取得され、作成後に変更されない場合は、整形式が保証されます)。 これらのノード型のシリアル化された出力は、それぞれ XML ドキュメントまたは外部 XML エンティティとして使用され、XML パーサーに対して入力できます。 他のすべての種類のノードでは、シリアル化された形式は実装に依存します。
Document
DocumentFragment
、、またはEntity
シリアル化されている内では、 Nodes
XML 宣言 (パラメーター "xml-declaration" が にfalse
設定されていない限り) と DTD サブセット (DOM に存在する場合) を含む ul<>liDocument
> ノードが書き込まれるように<処理されます。 ノードを記述すると、 Document
ドキュメント全体がシリアル化されます。 </li li>Entity
<> ノードは、 によってLSSerializer.write
直接書き込まれると、エンティティの展開を出力しますが、名前空間の修正は行われません。 結果の出力は、外部エンティティとして有効になります。 </li li>>< パラメーター "entities" が にtrue
EntityReference
設定されている場合、ノードは出力の " " &entityName;
という形式のエンティティ参照としてシリアル化されます。 エンティティ参照の子ノード (展開) は無視されます。 パラメーター " entities" が に false
設定されている場合、エンティティ参照の子のみがシリアル化されます。 EntityReference
子のないノード (対応するノードがないか、対応 Entity
する Entity
ノードに子がない) は常にシリアル化されます。 <指定された出力エンコードで表すことができないコンテンツ文字を含む /li li>CDATAsections
<> は、"split-cdata-sections" パラメーターに従って処理されます。 パラメーターが にtrue
CDATAsections
設定されている場合、 は分割され、理解できない文字は通常のコンテンツの数値参照としてシリアル化されます。 分割の正確な位置と数は指定されていません。 パラメーターが に設定されている場合、パラメーター "整形式" が にfalse
設定true
されている場合、 内のCDATAsection
理解できない文字はエラーとして"wf-invalid-character"
報告されます。 エラーは回復できません。代替文字を指定してシリアル化を続行するためのメカニズムはありません。 </li li><>DocumentFragment
ノードは、ドキュメント フラグメントの子をドキュメント フラグメントに表示される順序でシリアル化することによってシリアル化されます。 </li li><> 他のすべてのノード型 (Element、Text など) は、対応する XML ソース フォームにシリアル化されます。 </li></ul><p ><b>注:</b> のシリアル化では、必ずしも整形式の Node
XML ドキュメントが生成されるとは限りません。つまり LSParser
、結果のシリアル化を解析するときに、 が致命的なエラーをスローする可能性があります。
ドキュメントの文字データ (マークアップの外部) 内では、直接表現できない文字は文字参照に置き換えられます。 '<' と '&' の出現箇所は、amp; &定義済みのエンティティに置き換えられます。中尉;と &アンプ;。 その他の定義済みエンティティ (&;gt;、'、および ")必要な場合を除き、使用されない場合があります(例: ≫']]>') など)。 出力文字エンコードで直接表すことができない文字は、数値参照としてシリアル化されます (文字エンコード標準では一般的に文字の 16 進数表現が使用されるため、文字参照をシリアル化するときに 16 進数表現を使用することをお勧めします)。
属性値に単一引用符と二重引用符の両方を含めるために、アポストロフィ文字または単一引用符文字 (') を "'"、二重引用符 (") を """ 出力文字エンコードの属性値で直接表すことができない改行文字およびその他の文字は、数値参照としてシリアル化されます。
マークアップ内では、属性の外部では、出力文字エンコードで表すことができない文字が発生すると、致命的な DOMError
エラーとして報告されます。 たとえば、lt &要素をシリアル化します。LaCa\u00f1ada/>を使用します encoding="us-ascii"
。 これにより、"wf-invalid-character-in-node-name" が生成 DOMError
されます (" 整形式" で提案されています)。
パラメーター "normalize-characters" を true にLSSerializer
設定して要求された場合、文字正規化は、シリアル化されるすべてのデータ (マークアップデータと文字データの両方) に対する [XML 1.1] の付録 E に含まれる完全に正規化された文字の定義に従って実行されます。 文字正規化プロセスは、書き込み中のデータにのみ影響します。シリアル化が完了した後、ドキュメントの DOM のビューは変更されません。
すべての XML パーサーでサポートされている必要があるすべてのエンコードでデータがシリアル化可能であることを保証するために、エンコード "UTF-8"、"UTF-16"、"UTF-16BE"、および "UTF-16LE" をサポートするには、実装が必要です。 エンコードが UTF-8 の場合、バイト オーダー マークがシリアル化されるかどうか、または出力がビッグ エンディアンまたはリトル エンディアンの場合は、実装に依存します。 エンコードが UTF-16 の場合、出力がビッグ エンディアンかリトル エンディアンかは実装に依存しますが、 や LSOutput.systemId
などのLSOutput.byteStream
文字以外の出力にはバイト オーダー マークを生成する必要があります。 バイト順マークが生成されない場合は、"バイト順マークが必要" という警告が報告されます。 エンコードが UTF-16LE または UTF-16BE の場合、出力はビッグ エンディアン (UTF-16BE) またはリトル エンディアン (UTF-16LE) であり、バイト順マークは生成されません。 いずれの場合も、エンコード宣言が生成された場合、シリアル化中に使用されるエンコードに対応します (たとえば encoding="UTF-16"
、UTF-16 が要求された場合に表示されます)。
名前空間はシリアル化中に修正されます。シリアル化プロセスでは、名前空間宣言、名前空間プレフィックス、および要素と属性に関連付けられている名前空間 URI が一貫性があることを確認します。 不整合が見つかった場合は、ドキュメントのシリアル化された形式が変更されて削除されます。 ドキュメントのシリアル化中に名前空間の修正を行うために使用されるメソッドは、[DOM レベル 3 Core] の付録 B.1「名前空間の正規化」で定義されているアルゴリズムです。
ドキュメントのシリアル化中に、パラメーター "discard-default-content" は、指定されていないデータをシリアル化するかどうかを制御します。
シリアル化中は、エラー ハンドラー (LSSerializer.domConfig
の " error-handler" パラメーター) を使用して、エラーと警告がアプリケーションに報告されます。 この仕様では、DOM ノードのシリアル化中に発生する可能性のあるすべてのエラーと警告を定義しようとすることはありませんが、一般的なエラーと警告のケースがいくつか定義されています。 この仕様で定義されているエラーと警告の型 ( DOMError.type
) は、<出力が でLSOutput
指定されていない場合に にLSOutput
書き込むときに発生する dl<>dt><"no-output-specified" [fatal]
/dt><dd> です。 </dd><dt>"unbound-prefix-in-entity-reference" [fatal]
</dt><dd> 構成パラメーター " namespaces" が に true
設定され、置換テキストに非バインド名前空間プレフィックスが含まれるエンティティが、名前空間プレフィックスのバインドがない場所で参照される場合に発生します。 </dd><dt>"unsupported-encoding" [fatal]
</dt><dd> サポートされていないエンコードが検出された場合に発生します。 </dd></dl>
定義されたエラーと警告の発生に加えて、実装では、IO エラー (ファイルが見つからない、アクセス許可が拒否された,...) などの他のエラーと警告のケースに対して、実装固有のエラーと警告が発生することが想定されます。
ドキュメント オブジェクト モデル (DOM) レベル 3 の読み込みと保存の仕様も参照してください。
の org.w3c.dom.ls.LSSerializer
Java ドキュメント。
このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。
プロパティ
DomConfig |
には |
Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
JniIdentityHashCode |
ラップされたインスタンスの の |
JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
NewLine |
には |
PeerReference |
JniObjectReferenceラップされた Java オブジェクト インスタンスの を返します。 (継承元 IJavaPeerable) |
メソッド
Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 を呼び出 |
Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
SetJniIdentityHashCode(Int32) |
によって返される値を |
SetJniManagedPeerState(JniManagedPeerStates) |
には |
SetPeerReference(JniObjectReference) |
によって返される値を |
UnregisterFromRuntime() |
ランタイムが今後 Java.Interop.JniRuntime+JniValueManager.PeekValue の呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
Write(INode, ILSOutput) |
インターフェイスの一般的な説明で前述したように、指定されたノードを |
WriteToString(INode) |
インターフェイスの一般的な説明で前述したように、指定されたノードを |
WriteToURI(INode, String) |
エンコードが指定 |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
には |
GetJniTypeName(IJavaPeerable) |
には |
WriteAsync(ILSSerializer, INode, ILSOutput) |
には |
WriteToURIAsync(ILSSerializer, INode, String) |
には |