XMLのエキスポート
XMLのエキスポート関数
Export
Export関数を使うと,Wolfram言語からXMLデータがエキスポートできる.
関数の第1引数は,データをどのファイルにエキスポートするかを指定するものである.第2引数はエキスポートするデータを指定するもので,XMLデータのエキスポートの際は,これは記号的なXML式やその他のWolfram言語式になる.オプションの第3引数を出力形式の指定に使うこともできる.XMLデータのエキスポートに使用できるファイル形式には,"XML","ExpressionML","MathML","SVG"がある.
Exportのオプションを使うとエキスポート処理に関するさまざまな詳細部分が制御できる.
ExportString
ExportStringを使うと,Wolfram言語式をXML文字列に変換することができる.
ExportString[expr,format] | 文字列にエキスポートする |
XMLとしてエキスポートするのに使用できる形式には,"XML","ExpressionML","MathML","SVG"がある.
ExportStringのオプションを使うと,エキスポート処理に関するさまざまな詳細部分が制御できる.
Export オプション
はじめに
Export関数とExportString関数の標準オプションを使うと,エキスポート処理がより詳細に制御できる.
Export[file,expr,format,option1->value1,option2->value2,…] | |
ファイルにエキスポートする | |
ExportString[expr,format,option1->value1,option2->value2,…] | |
文字列にエキスポートする |
XMLデータのエキスポートに使用できるオプションには,以下のものがある.
"Annotations"
この変換オプションは,どの注釈を出力のXMLに加えるかを制御するものである.このオプションの値は,"DocumentHeader","XMLDeclaration","DOCTYPEDeclaration"の任意の要素の組合せのリストである.リスト中の要素はどのような順序でも構わない.
"XMLDeclaration"
"DOCTYPEDeclaration"
"DocumentHeader"
と設定すると,XML宣言とDTDの文書型宣言が自動的にヘッダに含まれる.
"AttributeQuoting"
"CheckXML"
この変換オプションは記号的なXML式をエキスポートする際に,まずエラーのチェックを行うかどうかを指定するものである.
記号的なXMLが正しいと確信がある場合は,このオプションをFalseに設定する.
エキスポートされた大きな記号的なXML式が,小さなエラーによって完全に破壊されてしまうこともあるため,"CheckXML"は非常に便利である.このオプションをオンにすると,小さなエラーの多くは修正される.
"ElementFormatting"
この変換オプションは,XMLファイル中の要素をどのようにインデントするかを制御する.
All | 要素の子ノードはすべてインデントされ,長い行は折り返される |
None | インデントは加えられない |
Automatic | 混在する内容はインデントされないが,内容が要素のみである要素はインデントされる(デフォルト) |
fn | ユーザ定義の関数 |
"Entities"
XMLドキュメントのエキスポートの際に,特殊文字を名前の付いた文字実体で表記することが望ましいことがある."Entities"は,このような名前の付いた文字実体の出力をサポートしている.
このオプションの値をリストとして指定することもできる.例えば,HTMLとMathMLの実体の両方をエキスポートするためには,"Entities"->{"HTML","MathML"}を使う. "HTML"と"MathML"のどちらにも設定されていない場合でも,すべての文字はXMLに正しく出力される.しかし,数値的な実体や文字コードUTF-8が使われる可能性がある.
独自の文字置換規則リストを使用する場合は,次の例のように,XMLで必要となる基本的なエスケープ文字も含むようにしなければならない.
"Entities"->{
"&"->"&",
"<"->"<",
">"->">",
"\""->""",
"'"->"'",
"h"->"&lowerCaseH;"
}
"Entities"に何らかの値を指定したら,適切な実体の宣言が確実に含まれるようにする.例えば"HTML"と設定すると,HTMLの実体を持つXMLが簡単に生成できる.
"NamespacePrefixes"
このオプションを使うと,特定の名前空間宣言と名前空間接頭辞を含むXMLマークアップが生成できる.オプションは"NamespacePrefixes"->{url->prefix}という形式で指定する.
"PrefixCreation"
このオプションは,名前空間が関連付けられているけれども記号的なXMLに名前空間宣言が含まれていないタグのエキスポートの際に,自動的に名前空間宣言を生成するかどうかを指定するものである.
オプション | 値 | 動作 |
"PrefixCreation" | True | 名前空間接頭辞を持つが,それに対応する名前空間宣言を持たない要素について,常に名前空間宣言を生成する |
False | どの要素についても名前空間宣言を生成しない | |
Automatic | URLの形式で名前空間接頭辞を持つ要素について名前空間宣言を生成する |
xmlns:prefix = "http://www.mydoc.net/2001/XML"という形式の名前空間宣言がないため,ここで作られたXMLにはあまり意味がない.これは,名前空間が束縛されているXMLに,フラグメントとしてXMLを埋め込むためにエキスポートする場合には望ましい動作である.