|
SymbolicXMLのシンタックスの検証
XML`SymbolicXMLErrors関数を使うと,SymbolicXML式のエラーを見付けることができます.この関数は,PartやExtractなどの関数を使ってSymbolicXML式の問題の部分にアクセスするときに使える場所指定を返します.前述のアメリカンリーグの打者の例に戻ってみましょう.
In[95]:=
Salaryノードが文字列"#N/A"を含んでいるPlayerRecordノードがあることについてはすでに見ました.年俸のデータがないプレーヤーは年俸が$1,000,000であるとします.しかし,変換の際に簡単なミスを見落としてしまいます.
In[96]:=
この結果,正しくないSymbolicXMLができてしまいました.XMLElement式の3つ目の要素に,文字列"1000000"を含むリストではなく,この文字列を渡しました.しかしこれに気付かず,後になって変更したXMLをファイルに書き込む際に,Export処理がエラーを返したと仮定します.問題がある式を見付けるために,SymbolicXMLErrorsを使うことができます.
In[97]:=
Out[97]=
最初にXMLElement::nameメッセージが返されていることにご注意ください.ここで初めて何かが間違っていると指示されます.SymbolicXMLを処理する他のどの関数でも,このようなメッセージが返されるでしょう.しかし,SymbolicXMLErrorsの出力は,間違いの場所を正確に教えてくれます.ALerrorsはエラーの生じた場所を示すリストを含んでいます.まず最初のエラーを検証します.
In[98]:=
Out[410]=
In[99]:=
Out[99]=
In[100]:=
Out[100]=
この問題は簡単に直すことができます.
In[101]:=
Out[101]=
残りのエラーも同じ性質であることが分かります.
In[102]:=
Out[102]=
Mapを使って,同じようにエラーを正すことができます.
In[103]:=
Out[103]=
さらにもう1度SymbolicXMLErrorsを使うと,エラーを正したことが確認できます.
In[104]:=
Out[104]=
|