xml ゼミ

16
XML ゼゼ ゼゼ XML ~第3第 第第第第第 ~ 3.3 ゼゼゼゼ 3.3 XML Schema ゼゼ ゼゼ

Upload: annick

Post on 05-Jan-2016

32 views

Category:

Documents


5 download

DESCRIPTION

XML ゼミ. 独習 XML ~ 第 3 章 文書と構造 ~ 3.3 スキーマ 3.3 XML Schema. 谷津 哲平. スキーマとは. さまざまな文書やデータの内容構造を定義したもの(広義). 整形式文書 (内容の保証なし) 検証済み文書 (構造が厳格). スキーマ文書. XML 文書の構造を定義するための方法 DTD (Document Type Definition 、文書型定義 ) XML Schema (XML スキーマ ) RELAX (Regular Language Description for XML) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML ゼミ

XML ゼミ

独習 XML~ 第 3 章 文書と構造 ~

3.3 スキーマ3.3 XML Schema

谷津 哲平

Page 2: XML ゼミ

スキーマとはさまざまな文書やデータの内容構造を定義したもの(広義)

整形式文書(内容の保証なし)検証済み文書(構造が厳格)

XML 文書の構造を定義するための方法DTD (Document Type Definition 、文書型定義 )XML Schema (XML スキーマ )RELAX (Regular Language Description for XML)Microsoft XML Schema (XML Data)

※ スキーマと XML Schema は同じではない

スキーマ文書

有効性を検証した文書( valid XML document )はタグの順序や属性値などがスキーマ文書に定義されているとおりだと保証される

Page 3: XML ゼミ

XML Schema 概要

musinst.xmlXML 文書

musinst.xsdXML Schema

使い方

XML 文書を検証する

バリデータ( Validator )or

XML パーサ

バリデータ( Validator )or

XML パーサ

XML の文書型定義には DTD が使われてきたが不十分になり、XML Schema は機能不足を改善し、文法規則を XML と同じにした

Page 4: XML ゼミ

Schema 要素

XMLXML スキーマのスケルトンスキーマのスケルトン

<xsd:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema”>( スキーマ定義 )</xml:schema>

XML Shema を定義するときは schema 要素を記述し,その中にスキーマの定義を記述する

Page 5: XML ゼミ

コメント,要素宣言XML SchemaXML Schema のコメンのコメントト

<!-- schema.xsd --> ※XML 文書と同じ

XML SchemaXML Schema の要素宣言の要素宣言( element declaration )

<xsd:element name=“ 楽器” type=“xsd:string”>

name 属性の値要素名が「楽器」であることを示している

type 属性の値string (文字列型)であることを示す

Page 6: XML ゼミ

単純型( simpleType )

単純型単純型XML Schema ではデータ型に単純型と複合型がある

単純型 説明 値の例

string 文字列 Mojiretu

positiveInteger 正の整数 1, 126789

integer 整数 -126789, -1, 0, 1

uriReference URL http://www.ibaraki.ac.jp/

decimal 10 進数 -10, 0, 123.4, 1000.0

time 時刻 13:20:00.000

Page 7: XML ゼミ

単純型のユーザ定義

ユーザ定義の例ユーザ定義の例

<xsd:simpleType name=“MyType” base=“xsd:string”> <xsd:pattern value=“[A-Z]{2}”/></xml:simpleType>

独自の単純な型を単純型 (simpleType) として定義できる

「 MyType 」という単純型を文字列方をベースにA-Z の範囲の大文字の英文字 2 文字で構成される pattern と定義

( 文字列の形式を指定する要素 )

Page 8: XML ゼミ

複合型 (complexType)

複合型複合型<?xml version=“1.0” encoding=“UTF-16” ?><!– schema.xsd --><xsd:schema xmlns:xsd=“http://www.w3.org/1999/XMLSchema”><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>

XML 文書の構造や複数の要素を含む要素は complexType を使う

要素宣言

属性宣言

Page 9: XML ゼミ

要素参照,出現回数要素参照の指定要素参照の指定

<xsd:element ref=“Title” minOccurs=“0” />

要素の参照は ref 属性を使う出現回数の指定出現回数の指定

<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” を指定する

Page 10: XML ゼミ

属性宣言( attribute declaration )

属性の指定属性の指定

<xsd:attribute name=“CODE” type=“xsd:NMTOKEN”/>

連絡先の < 氏名 > タグの属性“ CODE” を“ xsd:NMTOKEN” 型の属性として指定する例

属性は attribute 要素で宣言する

Page 11: XML ゼミ

ファセット( facet ) [1]

xsd:length値の長さを限定する.文字列の場合は文字単位,バイナリーデータの場合はオクテット (8 ビット ) 単位,リストの場合はリスト項目単位で指定 .

XML Shema では既存のデータ型の範囲やサイズを制限して新しいデータ型を定義することができる

制限を表すもの

<xsd:length value=”5”>

文字列の場合 5文字という制限になる

Page 12: XML ゼミ

ファセット( facet ) [2]xsd:minLength値の長さの最小値を限定する.

<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>

最大値 32 ,最小値 6 という制限

xsd:maxLength値の長さの最大値を限定する.

要素名「 title 」

単純型である「 xsd:string 」を元に制限をつける

ファセット

Page 13: XML ゼミ

ファセット( facet ) [3]

xsd:maxInclusive値の範囲の最大値を限定する.指定した値は含まれる .

<xsd:maxInclusive value=”10”> 10 以下

xsd:maxExclusive値の範囲の最大値を限定する.指定した値は含まれない .

<xsd:maxExclusive value=”10”> 10 未満

Page 14: XML ゼミ

  XML Schema の例 (再)「楽器リスト」は「楽器」要素で構成

「楽器」の個数は無限

「記譜音域」は省略できる

文字型要素

正の整数型要素

Page 15: XML ゼミ
Page 16: XML ゼミ

課題

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