|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--org.xml.sax.helpers.NamespaceSupport
SAX ドライバで使用できるように、名前空間ロジックをカプセル化します。
このモジュールは、ソースコード、文書ともに公開ドメインに置かれています。したがって、内容に関する保証は一切提供されません。
このクラスは名前空間処理のロジックをカプセル化します。このクラスを使って、各コンテキストで現在有効な宣言を追跡し、XML 1.0 修飾名から自動的に名前空間部分を生成することができます。名前空間を生成元の XML 1.0 修飾名に戻すこともできます。
名前空間サポートオブジェクトは再利用可能ですが、次のセッションまでの間に reset メソッドを呼び出す必要があります。
以下に、単純なセッションの例を示します。
String parts[] = new String[3]; NamespaceSupport support = new NamespaceSupport(); support.pushContext(); support.declarePrefix("", "http://www.w3.org/1999/xhtml"); support.declarePrefix("dc", "http://www.purl.org/dc#"); String parts[] = support.processName("p", parts, false); System.out.println("Namespace URI: " + parts[0]); System.out.println("Local name: " + parts[1]); System.out.println("Raw name: " + parts[2]); String parts[] = support.processName("dc:title", parts, false); System.out.println("Namespace URI: " + parts[0]); System.out.println("Local name: " + parts[1]); System.out.println("Raw name: " + parts[2]); support.popContext();
このクラスは、名前空間宣言を含む要素がほとんどないことを想定して最適化されています。したがって、すべてのコンテキストで同一の前置修飾子と URI のマッピングが繰り返されるような場合は、効率が低くなる可能性があります。
フィールドの概要 | |
static String |
XMLNS
定数で XML 名前空間を表します。 |
コンストラクタの概要 | |
NamespaceSupport()
新しい名前空間サポートオブジェクトを作成します。 |
メソッドの概要 | |
boolean |
declarePrefix(String prefix,
String uri)
名前空間前置修飾子を宣言します。 |
Enumeration |
getDeclaredPrefixes()
このコンテキスト内に宣言されているすべての前置修飾子の列挙を返します。 |
String |
getPrefix(String uri)
名前空間 URI にマッピングされている前置修飾子を 1 つ返します。 |
Enumeration |
getPrefixes()
現在宣言されているすべての前置修飾子の列挙を返します。 |
Enumeration |
getPrefixes(String uri)
URI に対して現在宣言されているすべての前置修飾子の列挙を返します。 |
String |
getURI(String prefix)
前置修飾子を検索し、現在マッピングされている名前空間 URI を取得します。 |
void |
popContext()
以前の名前空間コンテキストに戻します。 |
String[] |
processName(String qName,
String[] parts,
boolean isAttribute)
raw XML 1.0 名を処理します。 |
void |
pushContext()
新しい名前空間コンテキストを開始します。 |
void |
reset()
この名前空間サポートオブジェクトを再利用するため、リセットします。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
public static final String XMLNS
これは、前置修飾子 "xml" に自動的にマッピングされる名前空間 URI です。
コンストラクタの詳細 |
public NamespaceSupport()
メソッドの詳細 |
public void reset()
名前空間サポートオブジェクトを新しいセッションで再利用する場合は、その前にこのメソッドを呼び出す必要があります。
public void pushContext()
通常は、各 XML 要素の初めに新しいコンテキストをプッシュする必要があります。新しいコンテキストは親コンテキストの宣言を自動的に継承すると同時に、このコンテキスト内で作成された宣言を引き続き追跡します。
名前空間サポートオブジェクトは、すでに有効になっているベースコンテキストで開始します。このコンテキストに宣言されているのは "xml" 前置修飾子だけです。
popContext()
public void popContext()
通常は、各 XML 要素の終わりにコンテキストをポップします。コンテキストをポップすると、以前に有効だったすべての名前空間前置修飾子マッピングが復元されます。
コンテキストをポップしたあと、新たに名前空間前置詞を宣言する必要がある場合は、その前に別のコンテキストをプッシュします。
pushContext()
public boolean declarePrefix(String prefix, String uri)
このメソッドは、現在の名前空間コンテキスト内に前置修飾子を宣言します。この前置修飾子は、下位コンテキストでシャドウ化されないかぎり、現在のコンテキストがポップされるまで有効です。
デフォルトの名前空間を宣言するには空文字列を使用します。前置修飾子 "xml" および "xmlns" は使用できません。
別の名前空間をプッシュしてポップしたあと、前置修飾子を宣言することはできません。
このライブラリには非対称性があります。デフォルトの前置修飾子 "" を宣言しても、getPrefix
はこれを返しません。デフォルトの前置修飾子を確認する必要がある場合は、getURI
を使って明示的に検索を行います。この非対称性により、デフォルトの前置修飾子を使用できない環境でも、属性名から前置修飾子を検索しやすくなっています。
prefix
- 宣言する前置修飾子。空文字列の場合は nulluri
- 前置修飾子に関連付ける名前空間 URI
processName(java.lang.String, java.lang.String[], boolean)
,
getURI(java.lang.String)
,
getPrefix(java.lang.String)
public String[] processName(String qName, String[] parts, boolean isAttribute)
このメソッドは、前置修飾子を削除し、現在宣言されている前置修飾子の中からこれを検索することにより、現在のコンテキストに含まれる raw XML 1.0 名を処理します。戻り値は、呼び出し元が指定した配列です。以下を参照してください。
配列内のすべての文字列が内部化されます。raw 名にまだ宣言されていない前置修飾子が含まれている場合、戻り値は null になります。
属性名の処理方法は要素名の処理方法とは異なります。前置修飾子を持たない要素名がデフォルトの名前空間 (存在する場合) を受け取るのに対して、前置修飾子を持たない要素名はこれを受け取りません。
qName
- 処理される raw XML 1.0 名parts
- 呼び出し元が指定した配列 (3 個以上のメンバを格納できる)isAttribute
- 属性名 (true) であるか要素名 (false) であるかを示すフラグ
declarePrefix(java.lang.String, java.lang.String)
,
String.intern()
public String getURI(String prefix)
このメソッドは、現在のコンテキスト内で前置修飾子を検索します。デフォルトの名前空間を検索する場合は空文字列 ("") を使用します。
prefix
- 検索する前置修飾子
getPrefix(java.lang.String)
,
getPrefixes()
public Enumeration getPrefixes()
注: デフォルトの前置修飾子は、戻り値の列挙には含まれません。デフォルトの前置修飾子を確認したい場合は、引数 "" を指定して getURI
を使用してください。
getDeclaredPrefixes()
,
getURI(java.lang.String)
public String getPrefix(String uri)
同じ URI に複数の前置修飾子がマッピングされている場合、このメソッドはその中から無作為に 1 個を返します。すべての前置修飾子を確認したい場合は、このメソッドではなく getPrefixes()
メソッドを使用してください。
注: このメソッドは、空 (デフォルト) の前置修飾子は返しません。デフォルトの前置修飾子を確認したい場合は、引数 "" を指定して getURI
を使用してください。
uri
- 名前空間 URI
getPrefixes(java.lang.String)
,
getURI(java.lang.String)
public Enumeration getPrefixes(String uri)
このメソッドは特定の名前空間 URI にマッピングされている前置修飾子を返します。戻り値には、前置修飾子 xml: が含まれます。名前空間 URI にマッピングされている前置修飾子を無作為に 1 個だけ取得したい場合は、このメソッドではなく getPrefix
メソッドを使用します。
注: 空 (デフォルト) の前置修飾子は、戻り値の列挙には含まれません。デフォルトの前置修飾子を確認したい場合は、引数 "" を指定して getURI
を使用してください。
uri
- 名前空間 URI
getPrefix(java.lang.String)
,
getDeclaredPrefixes()
,
getURI(java.lang.String)
public Enumeration getDeclaredPrefixes()
getPrefix(java.lang.String)
や getPrefixes()
を使用する場合とは異なり、戻り値の列挙には、空 (デフォルト) の前置修飾子も含まれます。
getPrefixes()
,
getURI(java.lang.String)
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.