|
SymbolicXML
SymbolicXMLはXMLドキュメントを表現するためにMathematica で使われる形式です.XMLをSymbolicXMLに変換すると,XMLドキュメントはその構造を保ったままMathematica 式に変換されます.XMLドキュメントとMathematica 式は木構造を取っているため,どちらからどちらへの変換にも自然なマッピングができます.その後Mathematica プログラミングの標準的手法を使ってSymbolicXML式を操作することもできます.
XMLデータは,標準のImportまたはImportString関数を使ってMathematica にインポートできます.変換オプションを設定すると,ホワイトスペースの処理方法や実体を認識するかどうか,またはDTDに対して妥当性を検証するかどうかなど,インポート処理におけるさまざまな詳細もコントロールできます.詳しくはXMLインポート変換オプションをご覧ください.
次のコマンドはXMLデータをMathematica にインポートします.
Import["data.xml","XML"]
結果はSymbolicXML式expr1 となります.この式は標準のMathematica コマンドを使って操作できます.変換の最終結果は別のSymbolicXML式expr2 となります.
expr1 expr2
最後に,標準Export関数を使って結果をXMLファイルにエキスポートできます.
Export["newdata.xml",expr2,"XML"]
Export関数の変換オプションConversionOptionsを使うと,エキスポート後のXMLのフォーマットなど,エキスポート処理におけるさまざまな詳細がコントロールできます.詳しくはXMLエキスポート変換オプションをご覧ください.
SymbolicXMLとMathematica プログラミングを組み合わせることで,XSLT変換やJavaなどの低レベルプログラミング言語で使われるSAXやDOM APIなど,XMLドキュメントの操作のためのその他の方法を代替することができるので便利です.Mathematica でもこれらと同程度の柔軟で制御性に富んだXMLドキュメントの処理が可能になります.Mathematica の記号操作と数値計算の高度なサポートを,その他の方法では難しい,あるいは不可能な非常に複雑で高度な変換に利用できるという利点があります.
例えば,パターンマッチング技術を使ってXMLドキュメントの特定の部分を抽出し,データに対して数値計算を行い,可視化のために結果を3Dグラフィックスに変換できます.また,あるタイプのXMLアプリケーションをその他のものに変換するための定義もできます.例えば,DocBookドキュメントをSymbolicXMLとしてインポートし,要素名を他の要素名に変換する適切な変換規則を定義して,XHTML形式に変換することもできます.SymbolicXMLの便利な具体的応用例はXMLの変換をご覧ください.
SymbolicXMLのサポートは,NotebookML,ExpressionML,MathMLとうまく統合されています.例えば,XMLドキュメントをSymbolicXMLとしてインポートするときに,Mathematica はドキュメントがNotebookML形式,ExpressionML形式,MathML形式のいずれであるかを認識し,NotebookMLの場合はそれを自動的にノートブック式に,ExpressionMLの場合は式に,MathMLの場合はタイプセットボックス式に変換します.必要ならばデフォルトの動作に優先して,これらの形式をSymbolicXMLとしてインポートするようにすることもできます.文字列,ボックス,式と,NotebookML,MathML,SymbolicXML間の変換を素早く簡単にするためのカーネル関数も数多くあります.
直接Javaを使ってXMLドキュメントを操作したい場合は,J/Link アドオンパッケージを使って行えます.このパッケージはMathematica を完全にJavaと統合し,Mathematica からJavaのコマンド,あるいはJavaプログラムからMathematica カーネル関数が呼び出せるようになります.従ってMathematica の計算能力とJavaの低レベルプログラミング機能とクラスの両方にアクセスでき,必要に応じてこの2つを組み合せることも可能です.
|