次の方法で共有


IContentHandler.Characters(Char[], Int32, Int32) メソッド

定義

文字データの通知を受信します。

[Android.Runtime.Register("characters", "([CII)V", "GetCharacters_arrayCIIHandler:Org.Xml.Sax.IContentHandlerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public void Characters (char[]? ch, int start, int length);
[<Android.Runtime.Register("characters", "([CII)V", "GetCharacters_arrayCIIHandler:Org.Xml.Sax.IContentHandlerInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member Characters : char[] * int * int -> unit

パラメーター

ch
Char[]

XML ドキュメントの文字

start
Int32

配列内の開始位置

length
Int32

配列から読み取る文字数

属性

例外

SAX 例外 (別の例外をラップする可能性がある)

注釈

文字データの通知を受信します。

パーサーはこのメソッドを呼び出して、文字データの各チャンクを報告します。 SAX パーサーは、連続するすべての文字データを 1 つのチャンクで返すか、複数のチャンクに分割できます。ただし、ロケーターが有用な情報を提供するためには、1 つのイベント内のすべての文字が同じ外部エンティティから取得されている必要があります。

アプリケーションは、指定された範囲外の配列からの読み取りを試みてはなりません。

個々の文字は、複数の Java char 値で構成される場合があります。 文字を 16 ビットで表現できないため、これが発生する重要なケースは 2 つあります。 1 つのケースでは、2 つの特殊な Unicode 値を <使用して、文字が em>サロゲート ペア</em> で表されます。 このような文字は、いわゆる "アストラルプレーン" 内に存在し、U+FFFF の上にコード ポイントがあります。 2 番目のケースには、1 つ以上のアクセント文字と組み合わせた基本文字などの複合文字が含まれます。

コードでは、-at-a-time イディオムを使用 charするアルゴリズムが文字単位で動作することを想定しないでください。場合によっては、文字が分割されます。 これは、XML が属性値、処理命令データ、コメントなどの任意の文字を許可する場所、およびこのメソッドから報告されるデータに関係します。 また、Java コードが国際化されたテキストを操作するたびに、一般的に関連します。この問題は XML に固有ではありません。

一部のパーサーは、このメソッドではなくメソッドを#ignorableWhitespace ignorableWhitespace使用して要素コンテンツの空白を報告します (パーサーを><検証する必要があります</em>)。

の Java ドキュメントorg.xml.sax.ContentHandler.characters(char[], int, int)

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください

  • <xref:Org.Xml.Sax.IContentHandler.IgnorableWhitespace(System.Char%5b%5d%2c+System.Int32%2c+System.Int32)>
  • ILocator