大文字と小文字を区別 完全な入れ子構造
XML宣言・文書型宣言・XMLインスタンス部から成るが、インスタンス部のみが必須
XML宣言とXMLインスタンス部の記述が必要
属性値に外部実体の参照を含めてはならない
ルート要素を複数もつことはできない
well-formed XML
整形式である事に加えて、文書型宣言が必要
検証XMLパーサー(プロセッサ)によりDTDが参照される
validated XML
< > & " ' 以下小文字
「<」のようなテキスト値を扱うには、
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の頭文字を+にする
RFC2396により定められる、インターネット上のリソースを一意に識別するための記述方式
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" | "no" ?>
<!DOCTYPE 要素の名前 [ DTD ]> DTD か XML Schemaで記述
<要素名>要素内容</要素名>
<要素名></要素名> または <要素名/>
<要素名 属性名=”属性値”>要素内容</要素名>
属性に順番は関係ない
同一要素内で同名の二つ以上の属性は許されない
要素名と同名の属性名を使用しても良い
アルファベット・ひらがな・カタカナ・漢字・半角英字・アンダースコア・コロンを先頭に使える
2文字目では、半角数字・アクセント記号・長音・ピリオド・ハイフンが許される
先頭に数字や空白は不可 半角カナやセミコロン・全角英字・全角数字も使えない
<?処理命令ターゲット 処理内容?>
<?xml-stylesheet type="text/xsl" href="URI">のように記述
XML文書間において、リンク機能を提供する
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
XML文書において要素や属性などを位置参照する
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
select / lang / data-type / order(ascending/descending) / case-order
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 が優先
外部サブセットでは、SYSTEM とPUBLIC がある
宣言が重複した場合は、先に宣言したものが優先
外部実体のXML文書は解析の対象であるが、同じ文字コードである必要はない
外部解析対象外実体を参照するために必要なDTD宣言は、ENTITYとNOTATION
DTD の欠点・制約 データ型が宣言不可能・名前空間に未対応
要素記号として、' ' / + / ? / * / , / & / | / EMPTY / ANY
CDATA / ID / IDREF / IDREFS / NMTOKEN / NMTOKENS / ENTITY / ENTITIES
デフォルト値 #REQUIRED / #IMPLIED / #FIXED (同じ値であれば宣言可能)
予約文字を開始文字とした文字列を属性値に記述するため
一般実体 &〜; 内部・外部の実体を指す
パラメータ実体 %〜; DTD内で
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}
XMLデータをアプリケーションから操作するための標準インターフェイスの一つである
XML文書以外も扱え、文書を木構造で扱う
ノードの集合を表すためにNodeListとNamedNodeMapの2つが用意されている
プロパティとメソッドの総称
ノードには、Document / DocumentFragment / CDATASection / Attr / Element / Entity / EntityReference / Notation / ProcessingInstruction / DocumentType
ノードと並ぶインターフェースとして、NodeList / NamedNodeMap / DOMException / DOMImplementationがある
1986年ISOによるSGMLをインターネットで活用しやすくするため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 Formatting Object XSLの中でXML文書の表示スタイルに特化した仕様
XSLT + XSL-FO = XSL
W3Cによって提出された文書型定義仕様のひとつ
IBMとMSによりデータ型式を記述することを念頭に提出された
W3Cによって提出された文書型定義仕様のひとつ
MSのBizTalkフレームワークで使用
日本規格協会(INSTAC)により策定された文書型定義言語