スキーマ言語【schema language】
* スキーマ言語とは、SGMLやXMLで文書を作成する際に、その構造を定義する言語 * SGMLではDTDと呼ばれるスキーマ言語が使われ、HTMLの定義などに利用されてきた SGMLから派生したXMLでも、DTDが使われている
XSD
* XML Schema Definition / XMLスキーマ定義 * スキーマとは、XMLの構造 * 「いつ、どの要素が出現するのか」「その要素にはどのような属性があるのか」など、 XMLの木構造についての定義がスキーマです
属性
standalone属性
<?xml version="1.0" encoding="UTF-8" standalone="no"?> 外部DTDの参照が必要か不要かを明示する <?xml version="1.0"?> <xsd:schema xmlns="">http://www.w3.org/"> <xsd:element name="greeting" type="xsd:string" /> </xsd:schema> + element : 要素を宣言 + greeting : 要素名 + xsd:string : 要素の構造
include要素 / import要素 : 外部DTDの取り込み
http://www.atmarkit.co.jp/ait/articles/0402/11/news004_3.htmlhttp://scalaxb.org/ja/multiple-schema-files
頻繁に使用するスキーマ定義を別ファイルとして保存しておき、 ほかのXML Schemaに取り込んで再利用することができる * include要素 => ほかのXML Schemaに取り込んで、同一の名前空間の場合 * import要素 => ほかのXML Schemaに取り込んで、異なる名前空間の場合 ■利点 * 頻繁に使用されるカスタムのデータ型(拡張した複雑/単純型)を 外部スキーマとして別ファイル化しておくことで、より保守性に富んだスキーマを記述可能
include要素(schemaLocation属性)
http://itdoc.hitachi.co.jp/manuals/3020/30203M4760/EM470038.HTM<xsd:include schemaLocation="インクルード対象のXML Schemaのファイル名"/>
import要素(namespace属性/schemaLocation属性)
http://itdoc.hitachi.co.jp/manuals/3020/30203M4760/EM470037.HTM<xsd:import namespace="インポートする名前空間のURI" [schemaLocation="インポート対象のXML Schemaのファイル名"]/> * namespace => インポート対象のXML Schemaが属する名前空間のURIを定義。この属性の定義は必須。 * schemaLocation => インポート対象のXML Schemaのファイル名を定義。
use属性
例:<xsd:attribute name="id" type="idType" use="required"/> id属性は「必ず記述しなければならない」属性ですので、use属性の値には「必須」を表す「required」を指定します
required
* 属性は必ず書かなければならない
optional
* 属性は書かなくてもよい。もちろん書いてもよい
prohibited
* 属性は書いてはならない
choice要素
* いずれかの要素を指定する場合に用いる
element
* 要素を宣言する
complexType
* 複雑型(子要素または属性を持つ要素のデータ型)を表す * cf.単純型 : 子要素および属性を持たない要素のデータ型、あるいは属性値のデータ型
sequence
* 子要素の順番を指定する
ref
* 要素を参照
要素の出現回数の指定)
minOccurs
最少出現回数を指定する。 デフォルトは minOccurs="1" 0を指定すると省略可能要素となる。
maxOccurs
最大出現回数を指定する。 デフォルトは maxOccurs="1" 出現回数の上限をなくす場合は maxOccurs="unbounded" と指定する。http://www.atmarkit.co.jp/fxml/rensai2/schema01/schema01.html