Presentation is loading. Please wait.

Presentation is loading. Please wait.

独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema

Similar presentations


Presentation on theme: "独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema"— Presentation transcript:

1 独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema
~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema 谷津 哲平

2 スキーマとは さまざまな文書やデータの内容構造を定義したもの(広義) 整形式文書(内容の保証なし) 検証済み文書(構造が厳格) スキーマ文書
XML文書の構造を定義するための方法 DTD (Document Type Definition、文書型定義) XML Schema (XMLスキーマ) RELAX (Regular Language Description for XML) Microsoft XML Schema (XML Data) ※スキーマとXML Schemaは同じではない 有効性を検証した文書(valid XML document)はタグの順序や属性値などが スキーマ文書に定義されているとおりだと保証される

3 XML Schema 概要 XMLの文書型定義にはDTDが使われてきたが不十分になり、
使い方 musinst.xml XML文書 バリデータ(Validator) or XMLパーサ XML文書を 検証する musinst.xsd XML Schema

4 Schema 要素 XML Shema を定義するときは schema要素を記述し,その中に スキーマの定義を記述する
<xsd:schema xmlns:xsd=“ (スキーマ定義) </xml:schema>

5 コメント,要素宣言 XML Schemaのコメント <!-- schema.xsd --> ※XML 文書と同じ
XML Schemaの要素宣言(element declaration) <xsd:element name=“楽器” type=“xsd:string”> type属性の値 string(文字列型)であることを示す name属性の値 要素名が「楽器」であることを示している

6 単純型(simpleType) XML Schemaではデータ型に単純型と複合型がある 単純型 単純型 説明 値の例 string 文字列
Mojiretu positiveInteger 正の整数 1, integer 整数 , -1, 0, 1 uriReference URL decimal 10進数 -10, 0, 123.4, time 時刻 13:20:00.000

7 単純型のユーザ定義 独自の単純な型を単純型(simpleType)として定義できる ユーザ定義の例
<xsd:simpleType name=“MyType” base=“xsd:string”> <xsd:pattern value=“[A-Z]{2}”/> </xml:simpleType> 「MyType」という単純型を文字列方をベースに A-Zの範囲の大文字の英文字2文字で構成されるpatternと定義 (文字列の形式を指定する要素)

8 複合型 (complexType) XML文書の構造や複数の要素を含む要素はcomplexTypeを使う 複合型 要素宣言 属性宣言
<?xml version=“1.0” encoding=“UTF-16” ?> <!– schema.xsd --> <xsd:schema xmlns:xsd=“ <xsd:complexType name=“連絡先”> <xsd:element name=“氏名” type=“xsd:string”> <xsd:attribute name=“CODE” type=“xsd:long”/> <xsd:attribute name=“TEL” type=“xsd:string”/> <xsd:attribute name=“FAX” type=“xsd:string”/> </xsd:element> </xsd:complexType> </xmd:schema> 要素宣言 属性宣言

9 要素参照,出現回数 要素参照の指定 <xsd:element ref=“Title” minOccurs=“0” />
出現回数の指定 <xsd:element name=“氏名” type=“xsd:string” minOccurs=“1” /> <xsd:element name=“TEL” type=“xsd:string” /> <xsd:element name=“別名” type=“xsd:string” minOccurs=“0” maxOccurs=“unbounded” /> 要素「氏名」タグが少なくとも1個,要素「TEL」も少なくとも1個 要素「別名」は出現しなくても,いくつ出現してもよい 要素がいくつでもよいとき maxOccurs に“unbounded”を指定する

10 属性宣言(attribute declaration)
属性の指定 <xsd:attribute name=“CODE” type=“xsd:NMTOKEN”/> 連絡先の<氏名>タグの属性“CODE”を“xsd:NMTOKEN”型の 属性として指定する例

11 ファセット(facet)[1] 制限を表すもの XML Shema では既存のデータ型の範囲やサイズを制限して
新しいデータ型を定義することができる xsd:length 値の長さを限定する.文字列の場合は文字単位, バイナリーデータの場合はオクテット(8ビット)単位, リストの場合はリスト項目単位で指定. <xsd:length value=”5”> 文字列の場合 5文字という制限になる

12 ファセット(facet)[2] xsd:minLength 値の長さの最小値を限定する. xsd:maxLength
値の長さの最大値を限定する. 要素名「title」 <xsd:element name="title">         <xsd:simpleType>           <xsd:restriction base="xsd:string">             <xsd:maxLength value=“32" />             <xsd:minLength value=“6" />           </xsd:restriction>         </xsd:simpleType>       </xsd:element> 単純型である 「xsd:string」を元に制限をつける ファセット 最大値32,最小値6 という制限

13 ファセット(facet)[3] xsd:maxInclusive 値の範囲の最大値を限定する.指定した値は含まれる.
<xsd:maxInclusive value=”10”> 10以下 xsd:maxExclusive 値の範囲の最大値を限定する.指定した値は含まれない. <xsd:maxExclusive value=”10”> 10未満

14 XML Schema の例 (再) 「楽器リスト」は「楽器」要素で構成 「楽器」の個数は無限 「記譜音域」は省略できる 文字型要素
正の整数型要素

15

16 課題 ●XML Schema で,要素の内容を1以上10未満に  制約する定義を記述する


Download ppt "独習XML ~第3章 文書と構造~ 3.3 スキーマ 3.3 XML Schema"

Similar presentations


Ads by Google