今回は javax.xml パッケージ内のクラス「javax.xml.XMLConstants」 に定義されている静的フィールドを解読。
次の4つに分けて見ていきます:
名前空間 URI
名前が「_NS_URI」で終わるフィールドです。 「W3C_」で始まるものはチョット長めなので、別の表にしてますが、特に深い意味はありません。
フィールド名 | 名前空間 URI | 備考 |
---|---|---|
NULL_NS_URI | (空文字列) | 名前空間がないことを表す名前空間 URI |
XML_NS_URI | http://www.w3.org/XML/1998/namespace | Namespaces in XML で予約されている名前空間 URI です。 接頭辞は xml (XMLConstants.XML_NS_PREFIX の値) でなければなりません。 |
XMLNS_ATTRIBUTE_NS_URI | http://www.w3.org/2000/xmlns/ | Namespaces in XML で予約されている名前空間 URI です。 接頭辞は xmlns (XMLConstants.XMLNS_ATTRIBUTE の値) でなければなりません。 |
XML_DTD_NS_URI | http://www.w3.org/TR/REC-xml | ? |
RELAXNG_NS_URI | http://relaxng.org/ns/structure/1.0 | XML 形式のスキーマ言語「RELAX NG」の名前空間です。 |
フィールド名 | 名前空間 URI | 備考 |
---|---|---|
W3C_XPATH_DATATYPE_NS_URI | http://www.w3.org/2003/11/xpath-datatypes | こちらを参照。 |
W3C_XML_SCHEMA_NS_URI | http://www.w3.org/2001/XMLSchema | こちらを参照。 |
W3C_XML_SCHEMA_INSTANCE_NS_URI | http://www.w3.org/2001/XMLSchema-instance | こちらを参照。 |
名前空間接頭辞
名前が「_NS_PREFIX」で終わるフィールドです。
フィールド名 | 接頭辞 | 備考 |
---|---|---|
DEFAULT_NS_PREFIX | (空文字列) | 要素がデフォルト名前空間に属することを表すのに使う接頭辞です。 |
XML_NS_PREFIX | xml | Namespaces in XML で予約されている名前空間接頭辞です。 名前空間 URI は http://www.w3.org/XML/1998/namespace (XMLConstants.XML_NS_URI の値) でなければなりません。 |
属性
名前が「_ATTRIBUTE」で終わるフィールドです。 これに当てはまるのは「XMLNS_ATTRIBUTE」のみです。*1
フィールド名 | 属性名 | 備考 |
---|---|---|
XMLNS_ATTRIBUTE | xmlns | 名前空間を宣言するための属性 (xmlns="...")または接頭辞(xmlns:rng="..." のようなもの) です。 接頭辞として使った場合、対応する名前空間 URI は http://www.w3.org/2000/xmlns/ になります。 |
フィーチャー
XML を処理する際の特性(フィーチャー)を指定するキー文字列です。 このフィーチャーは安全な処理を行うかどうかを指定します。
フィールド名 | フィーチャー名 |
---|---|
FEATURE_SECURE_PROCESSING | http://javax.xml.XMLConstants/feature/secure-processing |
実際の使い方としては、
- javax.xml.parsers.SAXParserFactory
- javax.xml.parsers.DocumentBuilderFactory
- javax.xml.transform.TransformerFactory
- javax.xml.validation.SchemaFactory
- javax.xml.xpath.XPathFactory
などに定義されてある setFeature(String, boolean) メソッドに、上記文字列とブール値を指定します。 それぞれどのような設定になるかは、各 API ドキュメントを参照。
*1:これを属性と呼んでよいのかどうか怪しいですが、XMLConstants の API ドキュメントにはそのように書いてあるので、ここでもそうしておきます。