javaScriptでデーター変換


 
変換作業構想
 

 数値地図25000のAutoCADLTに変換作業を始めよう。まずは、 データー量の小さい「行政界」としよう。テキストファイルだからエデイターで 手作業で出来る。基本構想をまとめよう。
 境界は連続折れ線だから、AutoCADLTのスクリプトファイルを利用 するとして、データー形式はこのようになる。
line x, y
line x, y
直線コマンドを使ってline[enter]x,y[enter]
最初の[enter]はスペースでもいい。最後の[enter]は改行で対応する。 オリジナルはB L。区切りはスペースだ。B、Lが緯度、経度なのでX,Yに変換 する必要がある。抽出、変換、置き換えという行程が想定される。
 この「行政界」には線データーしかない。ただし要素にIDが振られている。 これが別ファイルの地名のプロット先参照になる。
<curve id='CV23220010329'> <CRS idref='JGD2000'/> <segment> <controlPoint>492506.5520 126994.8550</controlPoint> <controlPoint>492506.7550 126994.8720</controlPoint> <controlPoint>492507.1150 126994.8540</controlPoint> <controlPoint>492507.6970 126994.8240</controlPoint> <interpolation>linear</interpolation> </segment> </curve>
 一次加工としては、次ぎの形式が想定できる。
CV23220010329 492506.5520 126994.8550
CV23220010329 492506.7550 126994.8720
CV23220010329 492507.1150 126994.8540
CV23220010329 492507.6970 126994.8240

一ブロック10点程の連続線だがCAD側のブロックを 使うかどうかだ。ブロックにしてブロック特性にIDを 指定する方法もある。
IDは画層名にしてその画層に線オブジェクトを集めることにする。 文字をプロットする時は座標データをこの画層から 抽出するようにすればいいだろう。

以上の考察より、1次加工としては上の並びのデーターとする。
2次加工としては、BL2XY変換とAutoCADコマンドに置き換え ということになる。

 ところうで、BLの数値が何を表しているかだが、XML文書の中には 明記されていない。ダウンロードした添付ファイルに緯度経度が秒単位で あると書いてあった。XML文書内に明記するべきだと思うのだが。

 
XMLとXMPタグ、PREタグ
 

 DATA変換の基本構想を整理したので作業を始めよう。javaScript で用意したデータービュワーで眺めてみた。


[ファイルタイプ選択]
XML ..23220GKのXMLファイル
HTML ..23220GKのHTMLファイル----タグ解釈ナシ(xmp)
HTML ..23220GKのHTMLファイル----タグ解釈(pre)



 貴方のブラウザは何か分れませんが、僕はIE6です。 IEは5からXMLに対応している。具体的にはXMLバーサが 組込まれているはずだ。「XMLバーサ」は何をするかといえば、 文書がXMLに準拠しているか文法チエッカーと言ったところう。 違反があれば警告して何も表示されない。OKなら マークアップ文書のソースを表示する。ただそれだけ。

 プレーンのTXTファイルを
<HTML>
<BODY>
<PRE>

</PRE>
</BODY>
</HTML>

で挟み込めば、立派なHTML文書になる。これと同じで、 XML文書を挟み込めばHTML文書になってしまう。
この場合、有効なHTMLタグは解釈されてしまうので ソースを眺めるのには都合が悪い。
そこで、便利な<XMP>を使う。マイクロソフトの独自 機能なので、注意が必要だがIE6でも生きていた。

<XMP>バージョンで眺めておいて、検索、置換、削除 機能で一次加工する。そのためのツールをjavaScriptで試作中だった。

 そんな最中、<PRE>版を眺めてみた。

チョットまって、これなーに?

 そうなんだ、文書の中の解釈できないタグはHTMLブラウザは「改行」ということ らしい。マニアルのどこかに書いてあるか、 探している暇は生憎ないのだが。

 ともかく、僕のしたい作業は大半終っている。

 次は、この見たままのinlineHTMLをTXTファイルとして保存したら どうなるかだ。

 「XMLバーサ」を装備したIE6でどうなるか。それは 、やって見なければわからない。ソースのTXTをそのまま 吐き出すのか、解釈を終えた結果を吐き出すのか。 後者だったらラッキーといったところ。

結果はラッキーでした。



 
まとめ XMLとHTML
 

これがXMLというものだろう。と思うのだが。


 そういえば、XSLTとか「スタイルシート」とか、XMLの解説にはあった。 HTMLから話を始めればすぐ分かるのだが、多分、HTMLのタグを「メモ帳」で 操ったことのない人が解説するから迫力がないのだろう。 2003年10月でブラウザ戦争に結論が出たようだ。XMLという 上位規格も明文化された。21世紀はTXTタグの時代。積極的に利用することにしよう。


2003.11.01
by Kon