2 Structured Web Documents in XML Contents Introduction
2. Structured Web Documents in XML
Contents • • Introduction The XML Language Structuring Namespaces Addressing and Querying XML Documents Processing Summary
HTML & XML • HTML (Hyper. Text Markup Language) – Webページ記述の標準 – SGML(Standard generalized ML)から派生 – デバイスやシステムに非依存 • XML (e. Xtensible Markup Language) – HTMLの欠点を克服するために開発
XML applications • • Math. XML (mathmatics) BSML (bioinformatics) HRML (human resources) AML (astronomy) News. ML (news) IRML (investment) その他 – SVG (Scalable Vector Graphics),SMIL (Synchronized Multimedia Integration Language),RDF (Resource Description Framework)
Prolog • XML宣言 • 文書型宣言 <? xml version=“ 1. 0” encoding=“UTF-8” ? > ← XML宣言 <!DOCTYPE event SYSTEM “event. dtd” > ← 文書型宣言 <event> <fireworks 1> <name>足立の花火大会</name> <place>荒川河川敷</place> <date>2005. 07. 28</date> </fireworks 1> </event>
Elements • 要素 : : = 開始タグ 内容 終了タグ | 空要素 • 内容 : : = テキスト | 要素 • 空要素 : : = <name></name> | <name /> <? xml version=“ 1. 0” encoding=“UTF-8” ? > <!DOCTYPE event SYSTEM “event. dtd” > <event> <fireworks 1> <name>足立の花火大会</name> <place>荒川河川敷</place> <date>2005. 07. 28</date> </fireworks 1> </event> ← 要素
Valid XML Documents • 妥当なXML文書 – 整形式であり,かつ文書型定義に則している • DTD, XML Schema Well-Formed Valid
The Structure of DTD • • 要素型宣言 (element type declaration) 属性リスト宣言 (attribute list declaration) 実体宣言 (entity declaration) 記法宣言 (notation declaration) <!DOCTYPE menu [ <!ELEMENT menu (name, price, explanation)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ELEMENT explanation (#PCDATA)> <!ATTLIST name alias CDATA #REQUIRED> <!ENTITY …> <!NOTATION …> ]> 文書型宣言 要素型宣言 属性リスト宣言 実体宣言 記法宣言
The Structure of XML Schema <? xml version=“ 1. 0” encode=“UTF-8” ? > <xsd: schema xmlns: xsd=“http: //www. w 3. org/2001/XMLSchema”> <xsd: element name=“New. Menu” type=“menu”> <xsd: complex. Type name=“menu”> <xsd: sequence> <xsd: element name=“Name” type=“name. Type” /> <xsd: element name=“Price” type=“xsd: int” /> <xsd: element name=“Explanation” type=“xsd: string” /> </xsd: sequence> </xsd: complex. Type> <xsd: complex. Type name=“name. Type”> <xsd: element name=“name” type=“xsd: string” /> <xsd: attribute name=“alias” type=“xsd: string” use=“optional” /> </xsd: complex. Type> </xsd: element> </xsd: schema> スキーマ宣言 要素宣言 複合型宣言 出現順指定 属性宣言
Data Type Extension • あるデータ型をもとにして拡張することも可能 • さっきの例を使うと… <complex. Type name=“extended. Name. Type”> <complex. Type <sequence> name=“extended. Name. Type”> <element name=“name” <extension base=“name. Type”> type=“string” /> <sequence> <element name=“id” type=“int” /> </sequence> <attribute name=“alias” <attribute name=“developer” type=“string” つまり use=“optional” /> <attribute name=“developer” </extension> type=“string” </complex. Type> use=“optional” /> </complex. Type>
Data Type Restriction • あるデータ型に制約をつける • さっきの例を使うと <complex. Type name=“restricted. Name. Type”> <restriction base=“name. Type”> <sequence> <element name=“name” type=“string” max. Occurs=“ 2” /> </sequence> <attribute name=“alias” type=“string” use=“required” /> </restriction> </complex. Type>
- Slides: 27