Extensible Markup Language
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/22 03:52 UTC 版)
XMLの拡張
XMLを拡張する技術を説明する。
- XML Path Language (XPath)
- XML Path Language (XPath) を使うと、XML文書の個々の部分を参照することができるようになる。XPathは、XSLT、XSL-FO、XQuery などの他の技術に対して、XML文書のデータに対するランダムアクセスを行う機能を、提供する。XPathで記述された式は、XML文書を構成するXML要素、属性、処理命令、コメントなどの内側の、テキスト、データ、値を参照することができる。XPathの式は、要素の名前と属性の名前にアクセスすることもできる。Xpathは、妥当なXML文書に対しても整形式XML文書に対しても使うことができる。また名前空間が定義されたXML文書に対しても、名前空間が定義されていないXML文書に対しても使うことができる。
- XML Inclusions (XInclude)
- XML Inclusions (XInclude) の仕様は、XML文書内に外部ファイルの全内容もしくは外部ファイルの一部の内容を含める機能を、定義している。XML文書においてXIncludeの処理が終了すると、XInclude処理終了後のXML情報集合にはXIncludeの要素はなく、XIncludeの要素の代わりにそこに外部の文書もしくは文書の一部の複製が、最終的な情報集合に含まれている。XIncludeでは、外部文書の一部をXML文書に含める際に、外部文書の複製対象の領域を参照するためにXPathを使っている。
- XQuery
- XQueryは、XMLにおいて、関係データベースにとってのSQLやPL/SQLに相当する、問い合わせ言語としての機能を提供する。XML文書にアクセスし、XML文書を操作(編集)し、その結果をXML文書の形で返す。
- XML名前空間 (Namespaces in XML)
- XML名前空間 (Namespaces in XML) を使うことで、同一のXML文書内で異なる複数のボキャブラリ(スキーマ)に由来する要素と属性を、名前の衝突を発生させることなく、含めることができる。後述する。
- XML Signature
- XML Signature の仕様は、XML文書の内容に対して電子署名を生成するための構文と処理規則を定義する。
- XML Encryption
- XML Encryption の仕様は、XML文書の内容に対して暗号化を行うための構文と処理規則を定義する。
- XML Pointer Language (XPointer)
- XML Pointer Language (XPointer) は、XMLに基づいたインターネットメディアのコンポーネントを指し示す体系である。
MIMEタイプ
XML文書はさまざまなMIMEタイプで配布することができる。RFC 3023 は、"application/xml" および "text/xml" のMIMEタイプを定義する。 "application/xml" と "text/xml" のMIMEタイプは、そのデータがXML文書の形式をとっているということのみを述べているだけであり、そのXML文書の論理的構造については何も述べていない。 "text/xml" を使うことに対しては、符号化に関する問題が生じる可能性があるとの批判があり、現在では非推奨とされている[7]。RFC 3023 では、加えて、XML文書を "application/" で始まり、"+xml" で終わるMIMEタイプで配布することを勧めている。例えば、AtomのXMLデータに対しては、"application/atom+xml" のMIMEタイプで配布するのである。
XML名前空間
XML名前空間 (Namespaces in XML) は、一つXML文書内で、異なる複数のボキャブラリ(スキーマ)に由来する要素と属性を、名前の衝突を発生させることなく、含めることができるようにするための仕様である。World Wide Web Consortium (W3C) から、1999年1月14日に Namespaces in XML 1.0 が勧告された。XML文書に異なる複数のボキャブラリに由来する要素と属性を含める場合、ボキャブラリのそれぞれに名前空間をわりあてることにより、要素名の衝突と属性名の衝突の問題を、解決することができる。
一つの名前空間において定義された要素の名前は、一意でなければならない。
顧客への参照と注文された商品への参照を含む簡単なXML文書の例を考える。顧客要素と商品要素は、ともに「識別番号」という名前の子要素をもつことがあるだろう。識別番号要素への参照は、顧客要素の子要素の識別番号要素も商品要素の子要素の識別番号要素も同じ要素名をもつので、あいまいである。しかし2つのボキャブラリを区別する2つの名前空間のもとで識別番号要素を使う場合、顧客要素の子要素の識別番号要素と商品要素の子要素の識別番号要素は意味的に明確に異なる2種類の要素となる。
名前空間の宣言
名前空間は、XMLの予約属性である xmlns
を使って宣言される。xmlns
属性の属性値はIRI (Internationalized Resource Identifier) である必要があり、通常はURI (Uniform Resource Identifier) である。
例を示す。
xmlns="http://www.w3.org/1999/xhtml"
この例の "http://www.w3.org/1999/xhtml" を名前空間名という。ここで注意すべきこととしては、名前空間の宣言で記述されたURIは、実際にインターネット上の住所として解釈されるわけではないということである(自由に考えよう、URIほど便利なものが必ずインターネットのアドレスをささなければいけないなどと、誰が決めたのか)。例えば、http://www.w3.org/1999/xhtml自体には何のコードもない。このURIの文書では、人間の読者に対してXHTMLについて簡単に説明しているだけである。 ("http://www.w3.org/1999/xhtml" のような) URIを名前空間の識別子として使うことで、("xhtml" のような)単純な文字列を名前空間名として使うよりも、異なる名前空間が意図せずして同じ名前空間名を使ってしまう危険性を低減する。名前空間の識別子は、ウェブの住所(アドレス)の慣習にしたがう必要はない。
名前空間の宣言は短い接頭辞を含むことができる。この名前空間接頭辞を使うことで、異なるボキャブラリに由来する要素と属性を識別することができる。
名前空間接頭辞を使う例を示す。
xmlns:xhtml="http://www.w3.org/1999/xhtml"
XML名前空間を使ったXML文書の例を示す。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/社員名簿">
<html>
<head>
<title>XML文書をXHTML文書に変換する例</title>
</head>
<body>
<h1>社員名簿</h1>
<ul>
<xsl:apply-templates select="社員">
<xsl:sort select="姓"/>
</xsl:apply-templates>
</ul>
</body>
</html>
</xsl:template>
<xsl:template match="社員">
<li>
<xsl:value-of select="姓"/> <xsl:value-of select="名"/>
</li>
</xsl:template>
</xsl:stylesheet>
このXML文書は、次の2つの名前空間のボキャブラリから構成されている。
- XSLTのボキャブラリ: xslの名前空間接頭辞をもち、名前空間名は "http://www.w3.org/1999/XSL/Transform"。
- XHTMLのボキャブラリ: 名前空間接頭辞をもたないデフォルトの名前空間であり、名前空間名は "http://www.w3.org/1999/xhtml"。
なおこのXML文書は、あるXML文書をXHTML文書に変換するXSLTスタイルシートである。
XML名前空間を使う場合、そのXML名前空間のボキャブラリが定義されていることが必要であるわけではない。しかしXML文書でXML名前空間を使う場合に、そのXML名前空間のボキャブラリを定義しておくことは、そのXML名前空間のURIのもとで正しい文書構造を定義しているスキーマに関連づけるために、行われることが多い。
- ^ Extensible HyperText Markup Language (XHTML) は、マークアップ言語 HyperText Markup Language (HTML) を簡素化しその一貫性を改良しようという試みである。なお、HTMLは、Standard Generalized Markup Language (SGML) に基づいたマークアップ言語である。
- ^ XMLプロセサを利用する際には、XML文書で用いている文字コードをサポートしたものを選択することになる。
- ^ 他の方法でXML文書を処理することも可能である
- ^ 一つの要素の内容として文字列データのみを含むものは、混合内容ではない。また内容のない「空要素」も混合内容ではない。一つの要素の内容がいくつかの子要素だけから構成されるものも、混合内容ではない。
- ^ ただし、Binary XML の試みは、XML文書のバイナリ表現を使うことでこうした問題を軽減するべく努力している。例えば、Javaによる Fast Infoset 標準のリファレンス実装では、構文解析 (パース) の速度は Apache Xerces Java と比べて10倍速く、Javaによる最も高速なXMLプロセサの一つであるPiccolo driver と比べて4倍速い[1]。
- ^ XMLの汎用性とそれに伴う重さはしばしば揶揄の対象とされることもある。IP、TCP、UDPをXMLで定義するというジョークRFC ( RFC 3252 ) が存在する。
- ^ 階層型モデルは木構造の固定的な単一の視点による見方しか提供しない。例えば、役者が映画の下位に位置づけられるか、映画が役者の下位に位置づけられるかのいずれかであり、双方の視点を両立することはできない。
- ^ 例えば多義語を参照
- ^ "XML stands for Extensible Markup Language. The X is for the first syllable of Extensible. eXtensible is a spelling error."
- ^ Bray, Tim; Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau (2006年9月). “拡張可能なマーク付け言語 (XML) 1.0”. World Wide Web Consortium. 2007年10月6日閲覧。
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.132
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.139
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、pp.28-29
- ^ 株式会社日本ユニテック、中山幹敏、奥井康弘、2001年、p.29
- ^ xml-dev - Fw: An I-D for text/xml, application/xml, etc
- ^ JavaプラットフォームAPI仕様
- ^ Fitzgerald, Michael (2004). Learning XSLT. Sebastopol, CA: O'Reilly Media. pp. p.243. ISBN 978-0-596-00327-2
- ^ Push, Pull, Next! - Bob DuCharme, XML.com
- ^ http://www.asahi-net.or.jp/~DP8T-ASM/java/tools/Relaxer/index_ja.html
- ^ http://java.sun.com/xml/jaxb/
- ^ 『平成22年度 新ICT利活用サービス創出支援事業(電子出版の環境整備)メタデータ情報基盤構築事業)報告書』(PDF)(レポート)インフォコム株式、2011年3月31日、66頁 。2019年8月12日閲覧。
- ^ JIS X 4160:2007「XMLパス言語」附属書 B
- ^ XML Schema 1.1 Part 1: Structures
- ^ RELAX NG and W3C XML Schema, James Clark, 4 Jun 2002
- ^ Bray, Tim (2005年2月). “A conversation with Tim Bray: Searching for ways to tame the world’s vast stores of information”. Association for Computing Machinery's "Queue site". 2008年5月5日閲覧。
- ^ “Publishers, multimedia, and interactivity”. Interactive multimedia. Cobb Group. (1988). ISBN 978-1-55615-124-8
- ^ このワーキンググループはもともとは "Editorial Review Board" と呼ばれていた。このワーキンググループの最初のメンバーとXML仕様の first edition が完成するまでに加わっていた7人のメンバーは、XML 1.0 first edition のW3C勧告の最後に一覧して掲載されている。参照: http://www.w3.org/TR/1998/REC-xml-19980210#sec-xml-wg
- ^ Reports From the W3C SGML ERB to the SGML WG And from the W3C XML ERB to the XML SIG
- ^ Extensible Markup Language (XML) - W3C Working Draft 14-Nov-96
- ^ “W3CがXML 1.0を勧告”. INTERNET Watch (1998年2月12日). 2012年9月5日閲覧。
- ^ JIS X 4159:2005「拡張可能なマーク付け言語(XML)1.0」(日本産業標準調査会、経済産業省)
- ^ “Extensible Markup Language (XML) 1.1 (Second Edition) - Rationale and list of changes for XML 1.1”. W3C. 2006年12月21日閲覧。
- ^ Harold, Elliotte Rusty (2004). Effective XML. Addison-Wesley. pp. 10-19. ISBN 978-0321150400
- ^ Small company makes big claims on XML patents - CNET News.com
- ^ XML co-inventor Bray responds to patent assault | Between the Lines | ZDNet.com
- ^ 例えば、 XML-QL Proposal discussing XML benefits、 When to use XML、 "XML Sucks" on c2.com、Daring to Do Less with XML
- ^ Harold, Elliotte Rusty (2002). Processing XML with Java(tm): a guide to SAX, DOM, JDOM, JAXP, and TrAX. Addison-Wesley. 0201771861XML文書はバイナリと比べて冗長である
- ^ a b Efficient XML Interchange Evaluation, W3C Working Draft, 7 April 2009。W3C は、XML を非テキスト形式(バイナリ)で効率的に表現する方法を別途定義している。
- ^ Harold, Elliotte Rusty (2002). XML in a Nutshell: A Desktop Quick Reference. O'Reilly. 0596002920XML文書はとても冗長であり、高速であることが必要な大規模なデータベースシステムで情報の探索を行うには効率が悪い。
- ^ Bierman, Gavin (2005). Database Programming Languages: 10th international symposium, DBPL 2005 Trondheim, Norway. Springer. 3540309519XMLの構文は、いくつかの用途においては、人間が読むにはとても冗長である。人間にとっての読みやすさを改善するために dual syntax を提案する
- ^ 世間で言われているところによれば、XMLより「冗長性の小さい」多くのテキストフォーマットが、XMLに刺激を受けかつ先行的な業績としてXMLを位置づけ言及している。 例えば次のページを参照: http://yaml.org/spec/current.html、 http://innig.net/software/sweetxml/index.html、 http://www.json.org/xml.html
- ^ Lim, Ee-Peng (2002). Digital Libraries: People, Knowledge, and Technology. Springer. 3540002618固定的な階層構造を採用することに伴ういくつかの制限について議論する。2002年12月にシンガポールで開催された 5th International Conference on Asian Digital Libraries, ICADL 2002 の議事録より。
- ^ Searle, Leroy F. (2004). Voice, text, hypertext: emerging practices in textual studies. University of Washington Press. 0295983051オーバーラップする要素を表現する代替システムを提案する。
- ^ 例えば次のページを参照: http://www-128.ibm.com/developerworks/library/x-abolns.html
- ^ “The Myth of Self-Describing XML”. 2007年5月12日閲覧。
- ^ “Does XML Suck?”. 2007年12月15日閲覧。("8. Complexity: Attributes and Content" を参照)
固有名詞の分類
マークアップ言語 |
Artificial Intelligence Markup Language NewsML Extensible Markup Language Scalable Vector Graphics BBコード |
データシリアライゼーションフォーマット |
JavaScript Object Notation WDDX Extensible Markup Language Quoted-printable Abstract Syntax Notation One |
- Extensible Markup Languageのページへのリンク