*ネットワーク遠隔機器制御支援システム [#v7b22d6c] #contents -[[研究関係Wikiへ戻る>Lab]] **関連ページ一覧 [#n3beac25] #ls2 **ファイル一覧 [#tfb1c5d9] |ファイル名|説明|h |AccessServlet.java|| |AccessServlet.utf8.java|| |Base64.java|| |DeviceController.java|| |DeviceController.utf8.java|| |External.java|| |External.utf8.java|| |HelloWorldXSLT.java|| |PacketSender.java|| |PacketSender.utf8.java|| |TestHandler.java|| |XmlTest.java|| |XmlTrans.java|| **XML変換処理関係 [#n7f41e3c] まとめ:本システムのXML処理関係の動作を総合すると、XMLを一旦XSLを使ってテキストに変換し、その後通常のテキストと同様に読み込みを行っている。DOMは用いられておらず、XMLの利点が生かされているとは言い難い。 →DOMを使ってどうするのか? ***XmlTrans.class [#r95200e8] 引数としてxslname、xmlnameを取る。 メインとなっている処理はこれ:tf.transform(inSource, outResult); Trasformerクラスの解説:http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/xml/transform/Transformer.html エラーは主に以下の2種類。 -File exception -Translation error - " + e +"<br>xml: " + xmlname + "<br>xsl: " + xslname; ***AccessServlet.class [#w4cf939d] XmlTransを用いて、XMLファイルを変換 ***DeviceController.class [#z5b368e3] 495行目付近(public ArrayList trans内):XmlTransを用いて、XMLファイルを変換。 実際にtransを呼び出してるのは547行目、571行目、660行目、735行目付近 -Xmlname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Attr.xml"; -Xslname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Device_getattr.xsl"; -procedures = trans(Xmlname,Xslname,Dev_ID); ※上記の例では変数Dev_IDの機器を発見したらそこから読み込みを開始する、という動作になっている。"="が来たら終了。Dev_IDが無い場合は変換結果すべてを返す。 -Xmlname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/data/" + Dev_ID + ".xml"; -Xslname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/" + Line; -Xmlname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Device.xml"; -Xslname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Device_getparam.xsl"; -Xmlname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Attr.xml"; -Xslname = "/usr/local/tomcat5.5/webapps/sensor/WEB-INF/classes/Device_getattr.xsl"; ***XmlTest.class [#s03e845d] usage:java XmlTest (xslname) (xmlname) これでXSLを用いた変換後の結果が表示される。 [[研究関係Wikiへ戻る>Lab]]