倭マン's BLOG

くだらない日々の日記書いてます。 たまにプログラミング関連の記事書いてます。 書いてます。

javax.xml パッケージ

今回は 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 で予約されている名前空間接頭辞です。 名前空間 URIhttp://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 ドキュメントにはそのように書いてあるので、ここでもそうしておきます。