[32] [[XML Schema]] では、[[文字列]]に対する制約とそれによって表される値、
それに対する[[演算]]などにより構成されるものを[DFN[[RUBYB[[[データ型]]]@en[datatype]]]]と呼んでいます。

* 仕様書

[REFS[
- [33] '''[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/#datatype>'''
-- [4] [CITE@EN[W3C XML Schema Definition Language (XSD) 1.1 Part 2: Datatypes]]
( ([TIME[2012-04-05 06:34:51 +09:00]] 版))
<http://www.w3.org/TR/2012/REC-xmlschema11-2-20120405/#datatype>
- [8] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]]
( ([TIME[2014-04-26 05:40:41 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#h3_section-Graph-Literal>
- [12] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]] ([TIME[2014-04-27 06:23:59 +09:00]] 版) <https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#h2_section-Datatypes>
- [23] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]] ([TIME[2014-04-27 12:49:42 +09:00]] 版) <https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#h3_datatype-iris>
- [36] [CITE@EN[R2RML: RDB to RDF Mapping Language]] ([TIME[2012-09-27 00:23:35 +09:00]] 版) <https://www.w3.org/TR/2012/REC-r2rml-20120927/#datatype-conversions>
- [38] [CITE[[[OWL]] 2 Web Ontology Language Structural Specification and Functional-Style Syntax (Second Edition)]] ([TIME[2017-10-02 19:45:22 +09:00]]) <https://www.w3.org/TR/owl-syntax/#Datatype_Maps>
]REFS]

[31] [[XML Schema]] には1.0と1.1があり、それぞれの仕様書にもいくつかの版があります。
詳しくは [[XML Schema]] の項を参照してください。

* データ型 (XML Schema)

[1] [[XMLSchema]] では、[DFN[[RUBYB[データ型] [datatype]]]]は次の3つから構成されます:
: [[値空間]] (value space) : 互いに異なる値の集合
: [[字句空間]] (lexical space) : 字句表現の集合
: 面相 ([[facet]]) : 値空間, 個々の値又は字句項目を特徴付ける特性

[21] [[XML Schema]] 仕様書はいくつか組み込みのデータ型を定義しています。 ([[XML Schema組み込み型]]を参照。)
その他に [[XML Schema]] を使って独自の[[データ型]]を定義することができます。

* 文脈

[19] [[XML Schema]] の[[データ型]]は、 [[XML Schema]] に限らず色々な技術で採用されています。

[FIG(middle list)[ [34] [[XML Schemaデータ型]]の採用例
- [[XML Schema]] [[スキーマ言語]]
- [[RELAX NG]]
- [[DT4DTD]]
- [[データ型・名前空間対応DTD]]
- [[WSDL]]
- [[XDM一族]]
- [[XForms]]
- [[RDF]]
- [[RIF]]
- [[Model for Tabular Data and Metadata on the Web]]
- [[WebDAVデータ型]]
]FIG]

;; [22] このように [[W3C]] が力を入れている仕様では採用されているようですが、
それ以外の世界ではなかなか採用されないようです。 [[Webブラウザー]]で実装されている技術にも採用されていません。

[41] [[XForms]] は [[XML Schemaデータ型]]を使い、
それと併用する[[データ型]]も独自に追加していますが、
更に[[カメレオン名前空間]]として [[XML Schemaデータ型]]を
[[XForms]] の[[名前空間]]で使えるようにしています。

[43] 
[[RAML]] は [[XML Schemaデータ型]]に着想を得た独自の型システムを持っています。

* データ型 (RDF)

[13] [DFN[[RUBYB[[[データ型]]]@en[datatype]]]]は、[[字句空間]]、[[値空間]]、
[[字句から値への写像]]によって構成され、1つ以上の [[IRI]] によって表されます [SRC[>>12]]。

[14] この定義は [[XML Schema]] と互換性があり [SRC[>>12]]、多くの [[XML Schema]] 
[[データ型]]を [[RDF]] でも採用しています。しかし、 [[XML Schema]] によって定義されているものでなくても、
この定義に従っていれば、用いることができます [SRC[>>12]]。 

[9] [[RDFリテラル]]は、[[字句形]]、[[データ型IRI]]、[[言語タグ]]で構成されます [SRC[>>8]]。

;; [10] 詳しくは [[RDFリテラル]]の項を参照。

[11] [DFN[[RUBYB[[[データ型IRI]]]@en[datatype IRI]]]]は、[[字句形]]の解釈を決める [[IRI]] です。
[[言語タグ付き文字列]]以外では、これが[[データ型]]を表す [[IRI]] のいずれかです。

[20] [[言語タグ付き文字列]]は[[データ型IRI]] [CODE(URI)@en[[[http://www.w3.org/1999/02/22-rdf-syntax-ns#langString]]]]
によって表されますが、これは >>13 の定義に沿っておらず、[[データ型]]ではない [SRC[>>12]]
とされています。 ([[字句空間]]中に[[言語タグ]]が含まれていません。)

[24] ある [[IRI]] が[[データ型]]を参照するのに使うものであるとき、
これを[DFN[[RUBYB[認識されるデータ型IRI]@en[recognized datatype IRI]]]]といいます。 [SRC[>>23]]

;; [27] >>24 の定義だけ読むとそのような固定された [[IRI]] の集合がありそうですが、
以降のような規定から推測すると実装依存の集合のようです。

[25] [[認識されるデータ型IRI]]の [[referent]] は固定されています。  [CODE(URI)@en[[[http://www.w3.org/2001/XMLSchema#]]]]
から始まる [[IRI]] が認識される場合には、[[RDF互換XSD型]]を指すものでなければ[['''なりません''']]。 [SRC[>>23]]

[26] [[RDF処理器]]は[[データ型IRI]]を認識し[['''なければならない''']]わけではありません。
認識できない[[データ型IRI]]は、未知の [[IRI]] として扱います。 [[IRI]]
の [[referent]] が決定できないときには警告を出しても[['''構いません''']]が、
構文的あるいは意味的な誤りとして拒絶する[['''べきではありません''']]。 [SRC[>>23]]

;; [28] ということは [CODE[[[xs:string]]]] も認識しなくても良いということでしょうか。 
(それがどのような実装なのかはわかりませんが・・・。)

[29] [[データ型]]に対する[[著者]]の適合性は、少なくても [[RDF 1.1]] や [[RDF/XML]]
は言及していません。[[字句形]]が[[データ型]]の定義に沿っていないことを ill-typed
と呼んでおり、[[リテラル値]]は存在しません。その場合でも実装は[[RDF三項組]]を生成しなければならないとされていますが、
[[著者]]がそのような[[三項組]]を生成することが認められているともいないとも言及されていません。

;; [30] ということは適合性には影響しないのでしょうか。

** OWL

[39] 
[[OWL]] は [[XML Schemaデータ型]]を使っています。
しかし特に利用するデータ型を定めると共に、
独自のデータ型も追加しています。
[SRC[>>38]]

[40] それ以外のデータ型の利用も排除されていません。

* 演算

[35] [[XML Schema]] 自体は構文の制約と構文と値の対応関係しか規定していませんが、
[[XDM一族]]によりデータ型に属する値同士の[[演算]]が規定されています。

[37] [[R2RML]] は [[SQL]] の[[データ型]]の値から [[RDF]] の [[XML Schemaデータ型]]の値への変換方法を定めています
[SRC[>>36]]。

* バイナリー表現

[42] [[RDF Binary]]

* データ型の一覧

[SEE[ 日時関係のものは[[XML Schema暦]] ]]

* 歴史

[15] [[XHTML2]] 第6次案で [[RDFa]] の一部として[[大域属性]] [CODE(HTMLa)@en[[[datatype]]]]
が追加されました。

[REFS[
- [16] [CITE@en[- XHTML Metainformation Attributes Module]] ([TIME[2004-07-22 23:25:19 +09:00]] 版) <http://www.w3.org/TR/2004/WD-xhtml2-20040722/mod-metaAttributes.html#adef_metaAttributes_datatype>
]REFS]

[6] [CITE@en[XHTML+RDFa 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:11:45 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-xhtml-rdfa-20130822/#A_datatype>

[7] [CITE@en[HTML+RDFa 1.1]]
( ([TIME[2013-08-20 15:49:04 +09:00]] 版))
<http://www.w3.org/TR/2013/REC-html-rdfa-20130822/#extensions-to-the-html5-syntax>

[2] [CITE@en[RDFa Core 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:12:47 +09:00]] 版))
<http://www.w3.org/TR/rdfa-core/#A-datatype>

[3] [CITE@en[RDFa Core 1.1 - Second Edition]]
( ([TIME[2013-08-15 17:12:47 +09:00]] 版))
<http://www.w3.org/TR/rdfa-core/#h4_use-of-curies-in-specific-attributes>

[4] [CITE@en[RDF Schema 1.1]]
( ([TIME[2014-02-27 21:42:23 +09:00]] 版))
<https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-schema/index.html#h3_ch_datatype>

[5] [CITE@en[RDF 1.1 Concepts and Abstract Syntax]] ([TIME[2014-04-26 06:06:16 +09:00]] 版) <https://dvcs.w3.org/hg/rdf/raw-file/default/rdf-concepts/index.html#dfn-datatype-iri>

[17] [CITE[OASIS Open Document Format for Office Applications (OpenDocument) Version 1.2 - Part 1: OpenDocument Schema]]
([TIME[2011-09-29 13:00:00 +09:00]] 版)
<http://docs.oasis-open.org/office/v1.2/os/OpenDocument-v1.2-os-part1.html#a19_907xhtml_datatype>

[FIG(quote)[
[FIGCAPTION[
[18] [CITE@en[Generating JSON from Tabular Data on the Web]]
([TIME[2015-12-03 20:04:11 +09:00]] 版)
<http://www.w3.org/TR/2015/REC-csv2json-20151217/#h-datatypes>
]FIGCAPTION]

> Cell values are expressed in the JSON output according to the cell value's datatype. The relationship between the base annotation value of the cell value's datatype and the primitive types supported by JSON (as specified in '''['''RFC7159''']''') is provided below:

]FIG]
