Presentation is loading. Please wait.

Presentation is loading. Please wait.

XML Schema (1) ソフトウェア特論 第3回 / 2004-05-07.

Similar presentations


Presentation on theme: "XML Schema (1) ソフトウェア特論 第3回 / 2004-05-07."— Presentation transcript:

1 XML Schema (1) ソフトウェア特論 第3回 /

2 連絡 次週 (5/14) は休講となります。

3 きょうの目標 XML Schema の基本を知る

4 DTD

5 DTDとは何か XMLベースの言語で、どのようなタグがどのような組み合わせで利用できるかという情報を記述するためのもの。

6 DTDの例 <?xml version="1.0" encoding="Shift_JIS"?>
<!ELEMENT BOOKLIST (BOOK+)> <!ELEMENT BOOK ( TITLE, AUTHOR, PUBLISHER)> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> <!ELEMENT PUBLISHER (#PCDATA)>

7 DTDを使ったXML文書 <?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE BOOKLIST SYSTEM "BOOKLIST.dtd"> <BOOKLIST> <BOOK> <TITLE>情報メディア論</TITLE> <AUTHOR>丸山不二夫 編著</AUTHOR> <PUBLISHER>八千代出版</PUBLISHER> </BOOK> ……… </BOOKLIST>

8 DTDの限界 XMLらしくない記法。 要素の出現回数、出現順序などの設定に制限が多い。 データ型を指定できない。 名前空間が使いにくい。

9 XMLの限界 (1) XMLらしくない記法 「要素を組み合わせる」という記法ではないので、わかりにくい。
<!ELEMENT BOOKLIST (BOOK+)> <!ELEMENT BOOK ( TITLE, AUTHOR, PUBLISHER)> <!ELEMENT TITLE (#PCDATA)>

10 XMLの限界 (2) 要素の出現回数、出現順序などの設定に制限が多い
この要素は2回以上5回まで出現できる、といった指定ができない。 要素が順不同に出現する、といった指定ができない。

11 XMLの限界 (3) データ型を指定できない DTD では、要素の内容として次の2つしか指定できない。
他の要素 PCDATA この要素には数字が入る、といったデータ型の指定ができない。

12 XMLの限界 (4) 名前空間が使いにくい DTDは名前空間を扱うようには設計されていない。

13 XML Schema とは何か

14 XML Schema DTD とは別に、World Wide Web Consortium (W3C) が策定したスキーマ言語。

15 単純な XML Schema <?xml version="1.0"?>
<xsd:schema xmlns:xsd=" targetNamespace= " xmlns:st=   " <xsd:element name=“name”  type="xsd:string"/> </xsd:schema>

16 もっと単純化すると <?xml version="1.0"?> <xsd:schema>
<xsd:element name=“name”  type="xsd:string"/> </xsd:schema>

17 要素の指定 name という名前のタグがある。 内容は string (=文字列) である。 例)
<xsd:element name=“name” type="xsd:string"/> name という名前のタグがある。 内容は string (=文字列) である。 例) <name>安藤友晴</name>

18 「名前空間」とは XMLでは、ひとつの文書に(XMLベースの)複数の言語を組み合わせて使うことができる。
複数の言語を使うとき、同じ名前のタグがあったら困る。 そこで、どの言語のタグなのかを名前空間で識別する必要がある。 URIを名前空間として使うと、他とのダブリがなくなる。

19 XML Schema 自体の 名前空間の指定 <xsd:schema xmlns:xsd=" targetNamespace= " xmlns:st=   " <xsd:element name=“name”  type="xsd:string"/> </xsd:schema>

20 この XML Schema の 名前空間の指定 <xsd:schema xmlns:xsd=" targetNamespace= " xmlns:st=   " <xsd:element name=“name”  type="xsd:string"/> </xsd:schema>

21 ファイルの保存 XML Schema のファイルは “.xsd” という拡張子を持つのが普通 例えば sample01.xsd

22 このXML Schema を使った XML インスタンス
<?xml version="1.0"?> <st:name xmlns:st= " xmlns:xsi= xsi:schemaLocation= " sample01.xsd"> 安藤友晴 </st:name>

23 属性を無視すると <?xml version="1.0"?> <st:name> 安藤友晴
XML Schema で指定したとおり name という名前のタグがある。 内容は string (=文字列) である。

24 XML Schema の指定 (1) <?xml version="1.0"?> <st:name xmlns:st=
" xmlns:xsi= xsi:schemaLocation= " sample01.xsd"> 安藤友晴 </st:name>

25 XML Schema の指定 (2) XML Schema の URI ファイルの実体がある場所でない XML Schema のファイル
xsi:schemaLocation= " sample01.xsd"> XML Schema の URI ファイルの実体がある場所でない XML Schema のファイル sample01.xsd カレントディレクトリにある

26 このXML Schema の 名前空間 (1) <?xml version="1.0"?> <st:name
xmlns:st= " xmlns:xsi= xsi:schemaLocation= " sample01.xsd"> 安藤友晴 </st:name>

27 このXML Schema の 名前空間 (2) という URI を持つ XML Schema で定義されているタグは st という接頭辞を持つ 例) <st:name>安藤友晴</st:name>

28 XSV による検証

29 XSV XML Schema の検証ツール。 XML 文書が XML Schema に適合しなければ、エラーメッセージを出す。
W3C の協力を得ながら、エジンバラ大学で開発が進んでいる。 オープンソース

30 XSV を使う インストール XSV をインストールしたフォルダに path を通す。 使い方
コマンドプロンプト (or cygwin) から使う xsv sample01.xml 検証結果は XML ファイルとして出力される。

31 XSV の使用例 C:\Home\200405>xsv sample01.xml
<?xml version='1.0'?> <xsv xmlns=" docElt="{ instanceAssessed="true" instanceErrors="0" rootType="string" schemaErrors="0" schemaLocs=" -> sample01.xsd" target="file:///C:/Home/200405/sample01.xml" validation="strict" version="XSV of 2004/04/01 13:40:50"> <schemaDocAttempt URI="file:///C:/Home/200405/sample01.xsd" namespace=" outcome="success" source="schemaLoc"/> </xsv>

32 注意点 XML に日本語が含まれる場合、utf-8 で保存する必要がある。 utf-8 = XML のデフォルトの設定
Shift_JIS や EUC ではだめ。

33 参考文献・URL Extensible Markup Language (XML) 1.0 (Third Edition)
XML 1.0 の仕様書です。 W3C XML Schema XML Schema の仕様書など。


Download ppt "XML Schema (1) ソフトウェア特論 第3回 / 2004-05-07."

Similar presentations


Ads by Google