著作一覧 |
竹内さんのとこだと思ってツッコミを入れたが、もしかしたら誤爆だったかも。
スキーマ言語に何を使うか:DTD, XSD, RELAX NG, その他
ツール:メモ帳/エディター, VS.NET, その他(これしか選択枝が出てこないところがXSDとDTDに偏重する理由かも知れない)
何に使っているか?: 仕様書、コード生成のため、バリデーション、その他
XSD→RELAX NGするのに、Sun RELAX NG Converterを使ってみた。
で、<xsd:include schemaLocation="file:///C:/hogehoge.xsd">
が、エラーになること。実際にはhogehogeの部分は/documents/xxxx/...なんだが、
java.net.忘れた: unknown host: documents
というようなエラーになる。どう書いてもなる。xsd:importは、file:でフルパスを書けば通るのにxsd:includeはどうあっても、unknown hostになる。
うーん、と悩んだ末、IISをインストールして(これはWindowsマシンで作業してた)、http://localhost/xxx/hogehoge.xsd にして解決。
その後も、妙なクセに悩まされた。変換するとルート要素すら必ずchoiceから始まるのだが、Relaxerがうまく処理してくれない。これは、choiceから始まるのが変だろう(最初から手で書けばこういうスキーマにはならないし)ということで、変換したものをRubyでフィルタかけてchoiceを外した。
とかやっていくうちに、さらにいろいろ出てきたが、とどめは、antで複数のファイルを順にjavaタスクのargとして与える書き方がわからないことでした。
面倒になって、スクリプトを書いて(scriptタスクじゃなくて)、execタスクで実行したり。
しかし、そんな苦労をしたものの、今、落ち着いてantのマニュアル見ると、Apply/ExecOnが、まさにその機能だな。
プログラムが移動するわけじゃないし。
ごもっともです。
アンテナではアンテナを確認するユーザーエージェント(っていうかブラウザー)と、アンテナ設置サイト、アンテナ監視対象のサイト(群)の3種類のオブジェクト(というのは語弊が大有りだけど)があって、アンテナ設置サイトは黙々と監視を行っているというあたりでそんなことを考えたのかな。
しかし、なぜ、エージェント指向って言葉が消えてなくなったのかは興味深いです。とは言え、実際には消えてなくてガシガシ動いている可能性はあるんですよね、こういう技術って。
ジェズイットを見習え |
もし竹内が私のことだとすると誤爆だと思われます:-)
以前、先にサンプルXMLを書いて、XMLSPYというツールでスキーマを生成していたことがありました。
そう言えばVS.NETが出る前に、一瞬(評価版で)XmlXpyを使ってXSDを書いたことがありました。割と公的なXMLスキーマでも使われているのを見かけるし画像の生成がうまいのであれも良いですね、確かに。