SAS & XML


SAS Release 8.1のSAS XML LIBNAME エンジンを利用すると次のようなことができます。

SASデータセットをXMLドキュメントで出力する。

SAS proprietary format -> XML


XMLドキュメントの読み込み。

XML -> SAS proprietary format

XML LIBNAMEエンジンの書式

LIBNAME libref XML 'external_file_name' [ XM_engine_options ]

libref SASのライブラリ名
external_file_name 出力先のファイル名
XM_engine_options XML出力オプション


XML出力オプション


XMLTYPE= {GENERIC | ORACLE | OIMDBM | EXPORT | HTML}
XLMの出力形式の指定

GENERIC (デフォルト値) データセットの変数名と値をXMLで出力します。
ORACLE Oracle8i XML形式で出力します。
OIMDBM Open Information Model形式で出力します。
OIMDBMを指定すると、メタ・データの情報とデータの値が出力されます。
(http://www.mdcinfo.com/oim/)
EXPORT SAS Release 8.1ではOIMDBMと同じです。
HTML HTMLのテーブル形式で出力します。

CHARSET=character-set

ENCODING=encoding

INDENT=integer
インデントの指定(デフォルト3)

XMLDATAFORM={ELEMENT | ATTRIBUTE}
変数名をELEMENTで出力するかATTRIBUTEで出力するかの指定をします。

XMLSCHEMA={NONE | NO | IGNORE | FULL | YES}
OIMDBMあるいはHTMLで出力するときにスキーマの情報を出力するかどうかの指定をします。
デフォルト値は、NONE (NO, IGNORE)です。

OIMSTART=nnn
OIMDBM出力のメタ情報のレベルを指定します。

XML出力例

PROC FREQ data=sashelp.prdsal2;
TABLES PRODUCT / OUT=prdtbl; weight actual;
run;

/* XMLファイルの出力 */
libname trans xml 'c:\sas\prdtbl.xml' ;

proc copy in=work out=trans;
select prdtbl;

run;


出力結果 (prdtbl.xml)

<?xml version="1.0" encoding="windows-1252" ?>
 <TABLE>
  <PRDTBL>
   <PRODUCT> BED </PRODUCT>
   <COUNT> 3710251.84 </COUNT>
   <PERCENT> 24.721527 </PERCENT>
  </PRDTBL>
  <PRDTBL>
  <PRODUCT> CHAIR </PRODUCT>
   <COUNT> 3695383.62 </COUNT>
   <PERCENT> 24.6224595 </PERCENT>
  </PRDTBL>
  <PRDTBL>
   <PRODUCT> DESK </PRODUCT>
   <COUNT> 3718359 </COUNT>
   <PERCENT> 24.7755452 </PERCENT>
  </PRDTBL>
  <PRDTBL>
   <PRODUCT> SOFA </PRODUCT>
   <COUNT> 3884187.86 </COUNT>
   <PERCENT> 25.8804683 </PERCENT>
  </PRDTBL>
 </TABLE>

 

XMLからSVGの作成(XML形式ファイルの利用)

XML形式で出力されたファイルは、他システムとの電子的なデータ交換やXML形式のデータをサポートしているOracleやDB2などのRDBなどで利用することが可能ですが、ここではXSLTを使ってSVG形式ファイルを作成しグラフ表示を行う例を示します。

 

1. XSLTの作成 (tbl2svg.xsl)

2. XSLTプロセッサを使ってXMLからSVGを作成 (tbl_svg.svg)

という手順でSVGを作成しました。

XSLTプロセッサには、XTを使用しました。(XTを利用する場合は、"windows-1252"というエンコーディングがサポートされていないのでエンコードの指定を削除するか、"ISO-8859-1"などに変更する必要があります。)

生成されたSVGファイルは、Adobe SVG Viewerなどを利用して表示することができます。

 

 

 


Adobe SVG View (http://www.adobe.com/svg/)

XT (http://www.jclark.com/xml/xt.html)