XML (.xml)

予備知識

    • MIMEタイプ:text/xml
    • XML汎用マークアップ言語と構造化ドキュメント形式.
    • 主にコンピュータネットワーク内で異なるシステム間のデータ交換を行うために使用される.
    • 階層モデルを構造化データの表示に使う.
    • マークアップタグ,属性,文字コンテンツから成るツリーに基づく構造にデータを保持する.
    • 通常UTF-8で符号化されたプレーンテキストファイル.
    • XMLは,Extensible Markup Language(拡張マークアップ言語)からの頭字語である.
    • 汎用マークアップ言語規約(SGML)のサブセットである.
    • 1996年以来XML Working Groupによって開発されている.
    • 2001年にW3C標準推薦RFC 3076として出版された.

Import & Export

  • Import["file.xml"] はXMLベースのファイル形式に可能であれば特定のコンバータを使用する.可能でなければファイルを一般のXMLとしてインポートし,XMLObject式を返す.
  • XMLObject 式は,XML文書全体を XMLElement式のツリー形式で記号として表す.
  • Import["file.xml","XML"] は常に一般的なXMLとしてインポートする.
  • Import["file.xml",elements]は指定された要素をインポートする.
  • XMLもWolfram言語もデータをツリー構造で表すため,お互いを自然にマッピングすることができる.Wolfram言語は,XMLのデータ構造をネストされたXMLElementオブジェクトとして,そしてXMLドキュメント全体をXMLObjectに埋め込まれたXMLデータとして保持する.
  • Import はデフォルトでXMLに文字列として保持された数値データを返す.
  • インポートの形式はImport["file","XML"]あるいはImport["file",{"XML",elem,}]を使って指定することができる.
  • Import["file.html","XML"] はHTMLをインポートする前に整形されたXMLに変換する.
  • Export["file.xml",expr]expr式からXMLファイルをエキスポートする.
  • サポートされる expr 式は以下のとおり:
  • XMLElement[]記号的なXML要素をエキスポートする
    XMLObject[]記号的なXMLオブジェクトをエキスポートする
  • XMLObjectまたはXMLElement以外のタイプの式はExpressionMLとしてエキスポートする.
  • Export["file.xml",expr, elem]expr を要素elem を指定するものとして扱って,XMLファイルを作成する.
  • Export["file.xml",{expr1,expr2,},{{elem1,elem2,}}] は,それぞれのexpri が対応するelemi を指定しているものとして扱う.
  • Export["file.xml",expr,opt1->val1,] は指定されたオプションの要素が指定された値を取るものとしてexpr をエキスポートする.
  • Export["file.xml",{elem1->expr1,elem2->expr2,},"Rules"] は規則を使ってエキスポートされるべき要素を指定する.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "CDATA"文字列のリストとしてのCDATAセクション
    "Comments"文字列のリストとしてのXMLコメント
    "EmbeddedDTD"埋込まれたドキュメント型定義(DTD)
    "Plaintext"ファイルのプレーンテキスト表示
    "Tags"ファイルに現れるすべてのタグのリスト
    "XMLObject"記号的なXML式としてのドキュメント全体
    "XMLElement"ネストされたXMLElementオブジェクト
  • Importはデフォルトで"XMLObject" 要素を使う.

オプション

  • Importオプション:
  • "AllowRemoteDTDAccess"Trueネットワーク上で外部DTDを取ってくることを試みるかどうか
    "AllowUnrecognizedEntities"AutomaticXMLドキュメント中の未確認のものに構文解析が対処することを許すかどうか
    "IncludeDefaultedAttributes"False属性のデフォルト値で充填するかどうか
    "IncludeEmbeddedObjects"None含める("Comments""ProcessingInstructions"の)埋め込まれたオブジェクト
    "IncludeNamespaces"Automatic完全に記述したタグと属性の名前を返すかどうか
    "NormalizeWhitespace"True先頭と末尾の余白を削除して,文字データ中の連続するスペースを単一のスペースに減らすかどうか
    "PreserveCDATASections"False文字データセクションを特別のオブジェクトとして保存するかどうか
    "ReadDTD"True外部DTDを読み取るかどうか
    "ValidateAgainstDTD"Automatic指定されたDTDに対してドキュメントを有効にするかどうか
  • Exportオプション:
  • "AttributeQuoting""'"属性値についてデリミタを指定する
    "ElementFormatting"Automaticエキスポートされたドキュメント内の要素のインデントと長い文字列の改行
    "Entities"None文字を名前付きの実体で置き換えることについての規則
    "NamespacePrefixes"{}形式"namespace"->"prefix"のネームスペース接頭指定

例題

すべて開くすべて閉じる

  (3)

XMLのサンプルファイルを記号的なXMLとしてインポートする:

XMLファイルの概要を見る:

XMLObjectをエキスポートする:

スコープ  (1)

このファイルで使用可能なImport要素を示す:

プレーンテキストに変換する:

このサンプルファイルに現れるすべてのXMLタグのリストを得る:

Import Elements  (7)

"CDATA"  (1)

すべてのCDATAセクションをインポートする:

"Comments"  (1)

Import comments from the XML file:

"EmbeddedDTD"  (1)

XMLドキュメントに含まれるDTDをインポートする:

"Plaintext"  (1)

プレーンテキストをインポートする:

"Tags"  (1)

ファイル内のすべてのタグをインポートする:

"XMLObject"  (1)

完全ドキュメントを記号的XML表現としてインポートする:

"XMLElement"  (1)

ネストされたXMLElementオブジェクトをインポートする:

Importオプション  (18)

"AllowRemoteDTDAccess"  (1)

デフォルトでは,Importはネットワーク上の外部DTDを取得しようとする:

外部DTDのネットワークアクセスを無効にする.このファイルには外部DTDがないため,結果は同じになる:

"AllowUnrecognizedEntities"  (3)

デフォルトでは認識されない実体は許可され,警告メッセージが発行される:

警告メッセージなしで認識されない実体を許可する:

認識されない実体を許可しない:

"IncludeDefaultedAttributes"  (2)

デフォルトでは,属性のデフォルト値は含まれていない:

属性のデフォルト値を含める:

"IncludeEmbeddedObjects"  (2)

デフォルトでは,埋め込まれたオブジェクトは含まれない:

すべての埋め込まれたオブジェクトを含める:

コメントから埋め込まれたオブジェクトを含める:

"IncludeNamespaces"  (2)

デフォルトでは,名前空間は含まれない:

名前空間を含める:

"NormalizeWhitespace"  (2)

デフォルトでは,すべての空白は正規化される:

空白の正規化を無効にする:

"PreserveCDATASections"  (2)

デフォルトでは,文字データセクションは保持されない:

文字データセクションを含める:

"ReadDTD"  (2)

デフォルトでは,Importは外部DTDファイルを読み込み,検証に使用する:

外部DTDファイルを読めないようにする:

"ValidateAgainstDTD"  (2)

デフォルトでは,DTD ファイルが存在する場合,Importは検証エラーを報告する:

DTDに対する検証を無効にする:

Exportオプション  (1)

"AttributeQuoting"  (1)

属性値の異なる区切り文字を使用したXMLへのExportを比較する: