• 検索結果がありません。

XML XML (Extensible Markup Language) ISO SGML (Standard Generalized Markup Language) W3C (World Wide Web Consortium) XML 1.0

N/A
N/A
Protected

Academic year: 2021

シェア "XML XML (Extensible Markup Language) ISO SGML (Standard Generalized Markup Language) W3C (World Wide Web Consortium) XML 1.0"

Copied!
20
0
0

読み込み中.... (全文を見る)

全文

(1)

データベースシステム特論

(2)

XML

の概要

• XML (Extensible Markup Language)

• ISO

SGML (Standard Generalized Markup

Language)

をベースにインターネット上でのデー

タ交換を意識して設計された

• W3C (World Wide Web Consortium)

XML

1.0

として勧告

http://www.w3.org/TR/REC-xml

(3)

XML

記述の例

<?xml version="1.0" encoding="Shift_JIS"?>

<booklist>

<book id="Kobe:XML">

<title>XML

入門

</title>

<author>

神戸 太郎

</author>

<author>

兵庫 次郎

</author>

<publisher>

六甲出版

</publisher>

<price unit="yen">2000</price>

</book>

<book id="Hyogo:Java">

<title>Java

入門

</title>

<author>

兵庫 次郎

</author>

<publisher>

灘出版

</publisher>

<price unit="yen">1500</price>

<image ref="java_nymon.jpg"/>

</book>

</booklist>

(4)

XML

の特徴

テキスト形式で記述

文字コードの問題も解消されている

タグ

(tag)

を利用

タグは入れ子にできる

タグ名は自由に決められる

タグに属性

(attribute)

を付加できる

構文を規定できる

スキーマ言語

(DTD, XML Schema, Relax

NG)

(5)

XML

文書の構造

XML

文書は以下から構成される.

文書の前書き

(document prolog)

XML

宣言

<?xml version="1.0" encoding="Shift_JIS"?>

文書型宣言

(document type declaration,

略可

)

文書要素

(document element)

ルート要素

(6)

XML

宣言

<?xml version="1.0" encoding="Shift_JIS"?>

encoding

XML

文書の文字コードを指定する.

省略していれば

UTF-8

または

UTF-16

ISO-2022-JP (JIS)

Shift_JIS (

シフト

JIS)

EUC-JP (

日本語

EUC)

UTF-8 (Unicode

UTF-8 encoding)

UTF-16 (Unicode

UTF-16 encoding)

standalone

で外部に宣言が置かれているかどう

かを指定する.

(7)

文書型宣言

(document type declaration)

<!DOCTYPE

booklist

#

ルート要素型の指定

SYSTEM "booklist.dtd"

#

外部

DTD

の参照

[

<!ENTITY nada "

灘出版

">

#

実体宣言

]

>

• DTD

については後述.

実体宣言

(entity declaration)

により,

実体参照

(entity reference)

実体

(entity)

を文書中に挿

入することができる

(

実体参照の例

: &nada;)

(8)

文書要素

(document element)

• (

整形式の

)XML

文書にはちょうど一つの文書要

素があり,

ルート要素

と呼ばれる.

文書要素の構文

開始タグ

終了タグ

を含むコンテナ要素の構文

<

タグ名 属性

1

属性

2 ...>

内容

</

タグ名

>

内容

(content)

は,要素あるいは文字データ

(

空白や改行も含まれる

)

の並びである.

空要素

の構文

<

タグ名 属性

1

属性

2 .../>

(9)

文書要素

(

続き

)

開始タグ中に複数の属性を記述できる.

属性

(attribute)

の構文

属性名

="

属性値

"

属性名が同じものがあってはならない.

属性の表れる順序を区別しないのが通常の利

用方法である.

タグ名や属性名には漢字等を用いることができる.

-, _, .

以外の記号を用いることはできない.

:

は,名前空間

(

後述

)

の指定のために用いる

ことができる.

(10)

実体

(entity)

実体の種類

パラメータ実体

: DTD

中で利用

(

後述

)

一般実体

実体宣言

内部実体

:

宣言中に記述

<!ENTITY foo "<foo>bar</foo>">

外部実体

: XML

文書ファイルや

URL

を指定

(11)

実体

(

続き

)

文字参照

定義済み文字実体の参照

(

: &amp;)

Unicode

による文字実体の参照

(

: &#231;)

実体参照

内部実体の場合,宣言した内容が挿入される

(

: &foo;)

外部実体の場合,その

XML

文書の内容が挿

入される

(

: &part1;)

置き換えられたテキストにさらに実体参照が

含まれている場合は,さらに置き換えが行わ

れる

(12)

その他のマークアップ

コメント

<!--

コメント

-->

CDATA

セクション

<![CDATA[&

<

を含むことができるテキスト

]]>

マークアップを含まないテキストの記述

パースされない

処理命令

<?

処理名 データ

?>

(13)

XML

の木構造

<?xml version="1.0" encoding="Shift_JIS"?>

<booklist>

<book id="Kobe:XML">

<title>XML

入門

</title>

<author>

神戸 太郎

</author>

<author>

兵庫 次郎

</author>

<publisher>

六甲出版

</publisher>

<price unit="yen">2000</price>

</book>

<book id="Hyogo:Java">

<title>Java

入門

</title>

<author>

兵庫 次郎

</author>

<publisher>

灘出版

</publisher>

<price unit="yen">1500</price>

<image ref="java_nyumon.jpg"/>

</book>

</booklist>

(14)

XML

の木構造

(

続き

1)

DOMEcho.java

による木構造の表示

(

空白テキストは省略

)

ELEM: nodeName="booklist" ELEM: nodeName="book"

ATTR: nodeName="id" nodeValue="Kobe:XML"

TEXT: nodeName="#text" nodeValue="Kobe:XML" ELEM: nodeName="title"

TEXT: nodeName="#text" nodeValue="XML 入門" ELEM: nodeName="author"

TEXT: nodeName="#text" nodeValue="神戸 太郎" ELEM: nodeName="author"

TEXT: nodeName="#text" nodeValue="兵庫 次郎" ELEM: nodeName="publisher"

TEXT: nodeName="#text" nodeValue="六甲出版" ELEM: nodeName="price"

ATTR: nodeName="unit" nodeValue="yen" TEXT: nodeName="#text" nodeValue="yen" TEXT: nodeName="#text" nodeValue="2000"

(15)

XML

の木構造

(

続き

2)

ELEM: nodeName="book"

ATTR: nodeName="id" nodeValue="Hyogo:Java"

TEXT: nodeName="#text" nodeValue="Hyogo:Java" ELEM: nodeName="title"

TEXT: nodeName="#text" nodeValue="Java 入門" ELEM: nodeName="author"

TEXT: nodeName="#text" nodeValue="兵庫 次郎" ELEM: nodeName="publisher"

TEXT: nodeName="#text" nodeValue="灘出版" ELEM: nodeName="price"

ATTR: nodeName="unit" nodeValue="yen" TEXT: nodeName="#text" nodeValue="yen" TEXT: nodeName="#text" nodeValue="1500" ELEM: nodeName="image"

ATTR: nodeName="ref" nodeValue="java_nyumon.jpg"

(16)

整形式と妥当性

整形式

(well-formed)

XML

文書

XML

の構文形式に従っている

XML

文書

XML

パーサがパースできる

妥当

(valid)

XML

文書

整形式であり,与えられたスキーマ定義に従っ

ている

XML

文書

妥当性検証パーサによって検証される

スキーマ

(schema)

定義

タグや属性の表れる場所,データの型などを

(17)

DTD (document type definition)

スキーマ言語の一種

(XML

標準

)

• BNF

を用いる

<!ELEMENT booklist (book+)>

<!ELEMENT book

(title, author*, publisher?, price, image?)>

<!ATTLIST book

id ID #REQUIRED>

<!ELEMENT title (#PCDATA)>

<!ELEMENT author (#PCDATA)>

<!ELEMENT publisher (#PCDATA)>

<!ELEMENT price (#PCDATA)>

<!ATTLIST price

unit (yen|dollar) "yen">

<!ELEMENT image EMPTY>

(18)

名前空間

(namespaces)

下の例では,

xhtml

プレフィックスを持つ名前は,

XHTML

名前空間に属している.

<?xml version="1.0" encoding="Shift_JIS"?> <booklist xmlns:xhtml="http://www.w3.org/1999/xhtml"> <book id="Kobe:XML"> <title>XML 入門</title> <author>神戸 太郎</author> <author>兵庫 次郎</author> <publisher>六甲出版</publisher> <price unit="yen">2000</price> <description> <xhtml:p> XML についての<xhtml:b>素晴しい</xhtml:b>入門書である. </xhtml:p> </description> </book> </booklist>

(19)

名前空間

(

続き

)

下の例では,デフォールトの名前空間を

XHTML

名前空間に変更している.

<?xml version="1.0" encoding="Shift_JIS"?> <booklist> <book id="Kobe:XML"> <title>XML 入門</title> <author>神戸 太郎</author> <author>兵庫 次郎</author> <publisher>六甲出版</publisher> <price unit="yen">2000</price> <description> <p xmlns="http://www.w3.org/1999/xhtml"> XML についての<b>素晴しい</b>入門書である. </p> </description> </book> </booklist>

(20)

練習問題

• CD

データベース,日本の山データベース等を

XML

文書として表現せよ.

• Firefox

等のブラウザで,

XML

文書を開け.

配布の

DOMEcho.java

を上記

XML

文書に対し

て実行せよ.

上記

XML

文書の

DTD

を記述せよ.

• DOMEcho.java

で検証せよ.

参照

関連したドキュメント

In this diagram, there are the following objects: myFrame of the Frame class, myVal of the Validator class, factory of the VerifierFactory class, out of the PrintStream class,

Matsui 2006, Text D)が Ch/U 7214

北区では、外国人人口の増加等を受けて、多文化共生社会の実現に向けた取組 みを体系化した「北区多文化共生指針」

目標を、子どもと教師のオリエンテーションでいくつかの文節に分け」、学習課題としている。例

開発途上国の保健人材を対象に、日本の経験を活用し、専門家やジョイセフのプロジェクト経 験者等を講師として、母子保健を含む

上であることの確認書 1式 必須 ○ 中小企業等の所有が二分の一以上であることを確認 する様式です。. 所有等割合計算書

とされている︒ところで︑医師法二 0

`XML' framework, and must deˆne the identity of the word over the name-space in the RDF (Resource Description Framework) ˆle corresponding to the datasheet. Once such the deˆnition