アットウィキロゴ

技術情報 > ネットワーク > XML

Top > 技術情報 > ネットワーク > XML

XML

XMLの仕様

大文字と小文字を区別 完全な入れ子構造

XMLの構成

XML宣言・文書型宣言・XMLインスタンス部から成るが、インスタンス部のみが必須

整形式XML

XML宣言とXMLインスタンス部の記述が必要
属性値に外部実体の参照を含めてはならない
ルート要素を複数もつことはできない
well-formed XML

妥当なXML

整形式である事に加えて、文書型宣言が必要
検証XMLパーサー(プロセッサ)によりDTDが参照される
validated XML

実体参照

< > & " ' 以下小文字

予約文字「<」

「<」のようなテキスト値を扱うには、
CDATAセクション内に記述する
定義済み実体を用いて<を使用
実体を使って参照

コメント

<!−−と−−>で囲む

CDATAセクション

<![CDATA[テキストデータ]]>

エンコード

XML宣言でencoding属性が指定されていない場合、UTF-8かUTF-16で解釈される
さらに、XML処理系が必ず処理できなければならない文字エンコーディングは、UTF-8とUTF-16である
UTF-8の文字セットは、ISO/IEC10646である
日本語の他のエンコーディングとして、Shift_JIS / EUC-JP / ISO-2022-JP

コード変換

xsl:output要素で文字エンコーディングを設定し、XSLTにより別の文字へ変換

外字

直接入力できない文字は、文字コードを入力する事により入力
&#文字コード;(10進法) &#x文字コード;(16進法) xは必ず小文字

参照実体

内部参照実体では、識別子をsystem 外部参照実体では、識別子をpublic
標準化団体から承認を得て提供されているものにはURIの頭文字を+にする

URI

RFC2396により定められる、インターネット上のリソースを一意に識別するための記述方式

XML宣言

<?xml version="1.0" encoding="Shift_JIS" standalone="yes" | "no" ?>

文書型宣言

<!DOCTYPE 要素の名前 [ DTD ]> DTD か XML Schemaで記述

要素

<要素名>要素内容</要素名>

空要素

<要素名></要素名> または <要素名/>

属性

<要素名 属性名=”属性値”>要素内容</要素名>
属性に順番は関係ない

属性名

同一要素内で同名の二つ以上の属性は許されない
要素名と同名の属性名を使用しても良い

命名規則

アルファベット・ひらがな・カタカナ・漢字・半角英字・アンダースコア・コロンを先頭に使える
2文字目では、半角数字・アクセント記号・長音・ピリオド・ハイフンが許される
先頭に数字や空白は不可 半角カナやセミコロン・全角英字・全角数字も使えない

処理命令・PI

<?処理命令ターゲット 処理内容?>
<?xml-stylesheet type="text/xsl" href="URI">のように記述

XPath

XLink

XML文書間において、リンク機能を提供する

XPath

XML文書のノードの位置を指定する XSLTやXPointerで使用される
node-set ノード集合 / boolean ブール値 / number 数値 / string 文字列
記述(ロケーションステップ) 軸::ノードテスト[述語(省略可)]
ノードを指定するための関数・XML名前空間にも対応

比較演算子

= / != / > / < / >= / <= / + / - / div / mod / * / or / and

軸のキーワード

child / descendant / parent / ancestor / following-sibling / preceding-sibling / following / preceding / self / descendant-or-self / ancestor-or-self / attribute / namespace

軸の省略記法

child:: 省略可 / attribute:: 「@〜」 / seld::node() 「.」 / parent::node() 「..」 / /descendant-or-self::node() 「//」

ノードテスト関数

node() 全てのノード / text() 全てのテキストノード / comment() 全てのコメントノード / processing-instruction() 全てのPIノード

ノード集合関数

last / position / count / name / id / local-name / namespace-uri

数値関数

number / sum / round / ceiling / floor / integer

文字列関数

string / concat / contains / substring[-before/-after/-length]

ブール関数

boolean / true / false / not / lang

XPointer

XML文書において要素や属性などを位置参照する

XSLT

XSLT

XML文書を変換するルール CSV・XML・HTMLに変換可能
XML宣言・stylesheet宣言・template宣言がある
テンプレートルールは、テンプレートとパターンの2つで構成
<xsl:stylesheet version="1.0 xmnls:xsl="URI"><xsl:template><xsl:apply-templates>

処理の実行順序

ルートノードから順に、ルートに近い順に処理
テンプレートの中では、上から順に処理

組込み関数

XPathの組込み関数以外に、current / document / element-available / format-number / function-available / generate-id / key / system-property / unparsed-entity-uri

トップレベル要素

xsl:attribute-set / decimal-format / import / include / key / namespace-alias / output / param / preserve-space / strip-space / template / variable

要素

トップレベル要素以外に、apply-imports / apply-templates / attribute / call-template / choose / comment / copy / copy-of / element / fallback / for-each / if / message / number / otherwise / processing-instruction / sort / text / transform / value-of / when / with-param

sort処理属性

select / lang / data-type / order(ascending/descending) / case-order

output処理属性

method / version / encoding / omit-xml-declaration / standalone / doctype-system / cdata-section-elements / indent / media-type

ノード

XSLT仕様で7種に分類されるXML文書のツリー構造の要素
ルート・要素・テキスト・属性・名前空間・処理命令・コメント

テンプレート

デフォルトでは、ビルトインテンプレートが適用される
変数に定義した内容はxsl:copy-ofではコピーできない
xsl:call-template要素では、動的に適用されるテンプレートを指定できる

スタイルシート処理命令

<?xml-stylesheet文 href / title / type / media / charset / alternate

DTD

DTD

外部サブセットと内部サブセットがある場合は、内部DTD が優先
外部サブセットでは、SYSTEM とPUBLIC がある
宣言が重複した場合は、先に宣言したものが優先
外部実体のXML文書は解析の対象であるが、同じ文字コードである必要はない
外部解析対象外実体を参照するために必要なDTD宣言は、ENTITYとNOTATION
DTD の欠点・制約 データ型が宣言不可能・名前空間に未対応

DTDの要素

要素記号として、' ' / + / ? / * / , / & / | / EMPTY / ANY

DTDの属性

CDATA / ID / IDREF / IDREFS / NMTOKEN / NMTOKENS / ENTITY / ENTITIES
デフォルト値 #REQUIRED / #IMPLIED / #FIXED (同じ値であれば宣言可能)

NMTOKEN

予約文字を開始文字とした文字列を属性値に記述するため

ENTITY

一般実体 &〜; 内部・外部の実体を指す
パラメータ実体 %〜; DTD内で

XML Schema

XML Schema

DTDでのいくつかの問題点を解決 XMLで記述できる仕様
minOccurs / maxOccurs (-unbounded) / minInclusive (指定値含む) / maxInclusive / minExclusive (指定値含まない) / maxExclusive / minLength / maxLength などの属性

xsd:schema xmnls:xsd="URI">と宣言 c.f. <!DOCTYPE[ -- DTD

正規表現

XML Schemaでの正規表現には、文字侯補指定と出現回数指定がある

文字侯補指定

¥p{カテゴリ} / ¥P{カテゴリ} / ¥p{ls ブロック名} / ¥P{ls ブロック名} / 文字クラス[A-Z]など / 文字エスケープ ¥s{n} / ¥d{n} / ¥l{[A-Z]}開始文字 / ピリオド

出現回数

? / * / + / {n,m} / {n} / {n,} / {0,m} / {0,0}

DOM

DOM

XMLデータをアプリケーションから操作するための標準インターフェイスの一つである
XML文書以外も扱え、文書を木構造で扱う
ノードの集合を表すためにNodeListとNamedNodeMapの2つが用意されている

DOMインターフェース

プロパティとメソッドの総称
ノードには、Document / DocumentFragment / CDATASection / Attr / Element / Entity / EntityReference / Notation / ProcessingInstruction / DocumentType
ノードと並ぶインターフェースとして、NodeList / NamedNodeMap / DOMException / DOMImplementationがある

関連

XML

1986年ISOによるSGMLをインターネットで活用しやすくするためW3Cにより勧告
勧告に至るまでには、草案(ノート)→ドラフト→勧告候補→勧告案→勧告を経る

W3C

World Wide Web Consortium
XML / Namespaces in XML / XML Schema / XML-Signature / DOM / XSLT / XSL / CSS / XPath / XLink / XPointer / XML Base などを勧告

その他の団体による勧告

SAX / SOAP / SVG / CML / MathML / SMIL / XML-Signature / RDF

XSL-FO

XSL Formatting Object XSLの中でXML文書の表示スタイルに特化した仕様
XSLT + XSL-FO = XSL

XML-Data

W3Cによって提出された文書型定義仕様のひとつ

DCD

IBMとMSによりデータ型式を記述することを念頭に提出された

SOX

W3Cによって提出された文書型定義仕様のひとつ

XDR

MSのBizTalkフレームワークで使用

RELAX

日本規格協会(INSTAC)により策定された文書型定義言語

タグ:

+ タグ編集
  • タグ:
最終更新:2007年11月15日 07:21