[3] [DFN[[RUBY[XML Schema][エックスエムエルスキーマ]]]] は、
[[XML文書]]が満たすべき制約 ([[スキーマ]])
を記述する[[言語]] ([[スキーマ言語]]) でした。

[40] [[DTD]] にかわる [[XML]] における[[スキーマ言語]]の[[大本命]]として[[90年代]]末から開発が続けられ、
[[00年代]]はじめに [DFN[XML Schema 1.0]]、半ばに [DFN[XML Schema 1.1]] が 
[[W3C勧告]]となりました。

[56] 
[[XML]] [[マーク付け言語]]を規定する方法として [[W3C]] の [[XML]]
関連仕様や [[IETF]] の仕様などで採用されました。

[57] 
色々な [[XML]] 製品で実装されたものの、
[[XML]] の衰退によりあまり見かけなくなってきました。

* XML Schema の版

[7] [[XML Schema]] には、 1.0 と 1.1 の2つの版があります。

[8] 1.0 は第1版と第2版の2回 [[W3C勧告]]になっています。それぞれ、入門編の第0部、
スキーマ言語の第1部、データ型の第2部に分かれています。

[REFS[
- [23] [CITE@EN[XML Schema Part 0: Primer Second Edition]] ([TIME[2004-10-28 21:27:48 +09:00]] 版) <http://www.w3.org/TR/xmlschema-0/>
-- [25] [CITE[XML Schema Part 0: Primer]] ([TIME[2001-05-01 12:41:33 +09:00]] 版) <http://www.w3.org/TR/2001/REC-xmlschema-0-20010502/>
-- [24] [CITE@EN[XML Schema Part 0: Primer Second Edition]] ([TIME[2004-10-28 21:27:48 +09:00]] 版) <http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/>
- [17] [CITE@EN[XML Schema Part 1: Structures Second Edition]] ([TIME[2008-08-04 03:09:32 +09:00]] 版) <http://www.w3.org/TR/xmlschema-1/>
-- [19] [CITE[XML Schema Part 1: Structures]] ([TIME[2001-05-02 00:10:35 +09:00]] 版) <http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/>
-- [18] [CITE@EN[XML Schema Part 1: Structures Second Edition]] ([TIME[2008-08-04 03:09:32 +09:00]] 版) <http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/>
- [20] [CITE@EN[XML Schema Part 2: Datatypes Second Edition]] ([TIME[2004-10-28 21:44:54 +09:00]] 版) <http://www.w3.org/TR/xmlschema-2/>
-- [22] [CITE[XML Schema Part 2: Datatypes]] ([TIME[2001-05-01 03:17:18 +09:00]] 版) <http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/>
-- [21] [CITE@EN[XML Schema Part 2: Datatypes Second Edition]] ([TIME[2004-10-28 21:44:54 +09:00]] 版) <http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/>
]REFS]

[9] 1.1 は第1版が [[W3C勧告]]になっています。第2版が [[XML Core Working Group]] で準備中のようで、
それをその後 [[ISO]] に送付することになっているようですが、作業の進捗は芳しくないようです。 [TIME[2014-05-07T04:19:37.800Z]]

[26] スキーマ言語の第1部、データ型の第2部に分かれています。第0部は発行されていないようです。

[REFS[
- [15] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures]] ([TIME[2012-04-04 21:34:07 +09:00]] 版) <http://www.w3.org/TR/xmlschema11-1/>
-- [16] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 1: Structures]] ([TIME[2012-04-04 21:34:07 +09:00]] 版) <http://www.w3.org/TR/2012/REC-xmlschema11-1-20120405/>
- [13] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes]] ([TIME[2012-04-04 21:34:51 +09:00]] 版) <http://www.w3.org/TR/xmlschema11-2/>
-- [14] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes]] ([TIME[2012-04-04 21:34:51 +09:00]] 版) <http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/>
]REFS]

[11] [[素片識別子]]/[[XPointer]] に関する仕様 (>>10) は、2010年に [[CR]] になっており (>>12)、
[[XML Schema Working Group]] 終了後は [[XML Core Working Group]] に移されたようですが、
現状放置されているようです。 [TIME[2014-05-07T04:20:51.100Z]]

[REFS[
- [10] [CITE@en[W3C XML Schema Definition Language (XSD): Component Designators]] ([TIME[2010-01-19 15:21:31 +09:00]] 版) <http://www.w3.org/TR/xmlschema-ref/>
-- [12] [CITE@en[W3C XML Schema Definition Language (XSD): Component Designators]] ([TIME[2010-01-19 15:21:31 +09:00]] 版) <http://www.w3.org/TR/2010/CR-xmlschema-ref-20100119/>
]REFS]

[28] [[XML Schema]] の開発は [[W3C]] [[XML Schema Working Group]] (議事非公開) が担当してきましたが、
開発完了により [SRC[>>29]] 終了しました。 [[XML Schema 1.1]] と [[XPointer]] 仕様 (>>10)
は [[XML Core Working Group]] に引き継がれたようです [SRC[>>27]]。 [[XML Schema 1.0]]
については明記されていません。

[REFS[
- [27] [CITE@en-US[XML Core Working Group]] ([TIME[2013-07-23 16:38:09 +09:00]] 版) <http://www.w3.org/XML/2013/xml-core-charter.html>
- [29] [CITE@en-US[Extensible Markup Language (XML) Activity Statement]] ([TIME[2014-04-28 19:46:39 +09:00]] 版) <http://www.w3.org/XML/Activity>
]REFS]

[48] 開発未完了のまま [[WG]] を閉鎖するということは、事実上の開発中止です。
[[XML Core Working Group]] に引き継がれたとはいえ、その後何の開発も継続されていません。
しかもその [[XML Core WG]] も閉鎖されてしまいました。

[36] [[XML Schema]] の版は、しばしば[[相互運用性]]の問題になります。

[37] [[RDF]] は [[XML Schema]] の版を 1.0 と 1.1 のどちらでもよいとしています。

* XML の版と XML Schema

[38] [[XML Schema]] の 1.0/1.1 と[[直交]]する問題として、 
[[XML 1.0]] と [[XML 1.1]] のいずれを採用するか、
[[XML 1.0 4e]] 以前と [[XML 1.0 5e]] 以後のどちらを採用するかの問題もあります。

;; [58] 非常に紛らわしいですが、 [[XML]] 本体と [[XML名前空間]]は 1.0/1.1 
の版が同期していて、
[[XML Schema]] の 1.0/1.1 とは同期していません。
XML 1.0 - XML名前空間 1.0 - XML Schema 1.1 はあり得ますが、
XML 1.1 - XML名前空間 1.0 - XML Schema 1.1 はあり得ません。

[59] 
[[XMLの名前]]の定義などで、 [[XML]] の版が [[XML Schema]] の規定にも影響してきます。

* スキーマ言語としての XML Schema

@@ XXX

* XML Schema データ型

[30] [[XML Schemaデータ型]]を参照してください。

* 応用

[31] [[WSDL]] など [[WS-*]] 界は、 [[XML Schema]] に強く依存しています。

[32] [[IETF]] の [[XML]] 関連仕様のほとんどは、[[スキーマ言語]]として [[XML Schema]]
を採用しています。

[33] [[Microsoft]] や [[IBM]] は [[XML Schema]] をよく用いているようです。

[34] [[Web]] では、
[[旧HTML WG]] が一時仕様書に [[XML Schema]] ''も''含めていたことがあったくらいで、
[[XML Schema]] はほとんど用いられていません。

;; [46] [[XML Schemaデータ型]]の応用の項も参照。

[50] 
[[API]] として、 [[DOM AS]] や [[XML Schema API]] が提案されていました。

[54] [[X.694]]

* 関連

[4] よく対比される他の [[XML]] 用[[スキーマ言語]]としては [[XML DTD]]
や [[RELAX NG]] があります。

[41] [[XML Schema]] の開発においては現在の [[RELAX NG]] 
の開発者らと[[スキーマ言語]]への要求に関して激しい議論になりました。
結局両陣営の溝は埋まらず [[XML Schema]] と [[RELAX NG]] の2つの大きく異なる[[スキーマ言語]]が
[[W3C]] と [[ISO/IEC]] で標準化されることになりました。

;; [42] この論争で [[RELAX NG]] 側は「[[ボヘミアンと貴族の階級闘争]]」
であるとして [[XML Schema]] 側を非難しています。

[43] [[スキーマ]]に関しては対立する [[RELAX NG]] も[[データ型]]に関しては
[[XML Schema]] のものを採用しています。

[44] [[XML]] 関連業界ではどちらもそれなりに支持者がおり、完全に切り捨てることはできなかったようです。
[[DSDL]] (や [CODE(XML)@en[[[xml-model]]]]) のような形で両者を共存させる方法も模索されています。
いくつかの [[W3C]] の [[XML]] 関連仕様は [[XML Schema]] と [[RELAX NG]]
の両方 (場合によっては更に [[DTD]]) を提供しています。

[45] しかし [[Webブラウザー]]にはどちらも (そして [[DTD]] による[[妥当性検証]]すらも)
実装されないなど、 [[XML]] 関連業界以外ではそれほど関心を持たれていませんでした。
[[XML]] 全体の衰退により、どちらが勝者となることもなく、このままフェードアウトしていくものと思われます。

* 歴史

[60] 
[[SGML]]
の時代はほぼ唯一の[[スキーマ言語]]
[[SGML DTD]] 
が 
[[SGML]]
という[[マーク付け言語]]自体に組み込まれていました。
[[スキーマ]]が[[構文解析]]に作用することや、
[[スキーマ]]の記述と[[文書]]本体の記述の構文が違うことなど、
[WEAK[([[SGML]] の設計思想からすれば妥当であったとしても)]]
[[XML]] 
の開発者達には不満が多くありました。
[[SGML DTD]]
を簡易化した
[[XML DTD]]
も、多かれ少なかれそうした「欠点」を引き継いでいました。
新たな[[スキーマ言語]]が必要だという認識は、
[[XML]] 
の開発段階から、
[[XML]] の世界では広く共有されていました。



[1] ''Document Content Description for XML'' <http://www.w3.org/TR/NOTE-dcd>: XML Schema の源流なのかな?

[2]
''XML Schema Versioning Use Cases'' <http://www.w3.org/XML/2005/xsd-versioning-use-cases/>

[63] 
[CITE[XML-Data]], [TIME[2024-08-17T05:57:13.000Z]], [TIME[2000-10-12T00:48:10.401Z]] <https://web.archive.org/web/20001012004735/http://www13.w3.org/TR/1998/NOTE-XML-data-0105/>

[64] 
[CITE@EN-US[XML Data Types Reference]], [[InetSDK]], [TIME[2024-08-17T05:57:50.000Z]], [TIME[2000-10-18T14:28:58.414Z]] <https://web.archive.org/web/20001018142748/http://msdn.microsoft.com/xml/reference/schema/datatypes.asp>

[61] 
[CITE@EN-US[XML Schema Developer's Guide]], [[InetSDK]], [TIME[2024-08-17T05:51:31.000Z]], [TIME[2000-10-18T20:04:58.433Z]] <https://web.archive.org/web/20001018195803/http://msdn.microsoft.com/xml/xmlguide/schema-overview.asp>

[62] 
[CITE@EN-US[XML Schema Reference]], [[InetSDK]], [TIME[2024-08-17T05:56:35.000Z]], [TIME[2000-10-18T14:21:04.468Z]] <https://web.archive.org/web/20001018140914/http://msdn.microsoft.com/xml/reference/schema/start.asp>


[6] [CITE@en[XQuery and XPath Data Model 3.0]]
( ([TIME[2014-04-08 07:00:06 +09:00]] 版))
<http://www.w3.org/TR/xpath-datamodel-3/#xml-and-xsd-versions>

[35] [CITE[Processing XML 1.1 documents with XML Schema 1.0 processors]] <http://www.w3.org/TR/2005/NOTE-xml11schema10-20050511/>
([[名無しさん]] [WEAK[2005-05-11 23:19:58 +00:00]])


[39] [CITE@ja[Visual Studio .NET のスキーマ注釈]]
( ([TIME[2014-07-03 01:17:23 +09:00]] 版))
<http://msdn.microsoft.com/ja-jp/library/aa293094(v=vs.71).aspx>

[FIG(quote)[
[FIGCAPTION[
[5] [CITE@en-US[XML Core Working Group]]
([TIME[2015-05-21 07:08:20 +09:00]] 版)
<http://www.w3.org/XML/2015/05/xml-core-charter.html>
]FIGCAPTION]

> 
> Take XML Schema 1.1 to ISO under the PAS mechanism; this may require publishing a second edition of XML Schema to include errata.

]FIG]


[FIG(quote)[
[FIGCAPTION[
[47] [CITE@en[Some New Year notes on XML Core WG issues]]
([[Paul Grosso]] 著, [TIME[2016-01-05 00:54:44 +09:00]] 版)
<https://lists.w3.org/Archives/Public/public-xml-core-wg/2016Jan/0002.html>
]FIGCAPTION]

> I have left XML Schema 1.1, but if by the February 3 telcon
> we have no more idea how to make progress on this, I plan to
> delete this item from our running agenda.

]FIG]


[49] [CITE@en[XQuery and XPath Data Model 3.1]]
([TIME[2017-03-20 07:26:25 +09:00]])
<https://www.w3.org/TR/2017/REC-xpath-datamodel-31-20170321/#xml-and-xsd-versions>

[51] [CITE[XML Schema Part 2: Datatypes]]
( ([TIME[2003-07-07 14:13:02 +09:00]]))
<http://www.y-adagio.com/public/standards/tr_xml-schema2/toc.htm>

[52] [CITE[XML Schema Part 1: Structures]]
( ([TIME[2003-07-07 14:12:41 +09:00]]))
<http://www.y-adagio.com/public/standards/tr_xml-schema1/toc.htm>

[53] [CITE[XML Schema Part 0: Primer]]
( ([TIME[2003-07-07 14:12:18 +09:00]]))
<http://www.y-adagio.com/public/standards/tr_xml-schema0/toc.htm>

[55] 
[DFN[KS X 6042:2014]]

[[XML Schemaデータ型]] (1.0)