光学薄膜設計ソフトの設計 その35 - 入力用XMLファイルのDTD [考え中 - 光学薄膜設計]
前回までで入力用のXMLの構造を決めた。忘れないうちにDTDに書き下そう。
DTD
ということで書いてみた。めちゃめちゃ面倒だった。でもこういうもんだよな、例えばObjective-Cのコードを書く手間と結局は変わらないのだけど、なぜかとてもわずらわしい。こういうのは気持ちの問題、モチベーションの問題なんだろうと思う。
前半にDTDの記述が、後半にダミーのデータが入っている。大きいので別窓で開く。
これ。
前回、前々回の内容を反映させた上で、NSXMLDocumentで読み込んでDTDエラーが出ないことは確認した。
DTDを書いとかなきゃ構造を忘れるけどDTD書いても後から読むとわけわかんないね。
どうでもいいけどDTDだと出現順が決まっちゃうのね。
XML Schema
DTDを書き下ろしたけど、どうもDTDのシンタクスが頭にはいらなくて全然覚えられない。DTDよりもXML Schemaで書いてみよう。こいうとこやこんなとこでXML Schemaを勉強させてもらった。きれいにまとまっていてわかりやすくて、これだと大きくて値段の高い本を買わなくて済む。ありがたい。
XML Schemaで同じものを書いてみた。DTDよりも細かく指定できるのでなるべくXML Schemaの思想に合わせたつもりのこれ。こっちも別窓で開く。
NSXMLDocumentはDTDとSML Schemaに対応していてvalidationできるらしい。でもDTDと違って、NSXMLDocumentを使ったチェックの仕方がどうしてもわからなくて、あってるかどうかわからない。これでは残して晒しといても意味ないな。まあ、チェックの仕方がわかったらこれをもとにやり直そう。
XML Schemaはそれ自身XMLで書かれているのと、データのタイプがこまかく指定できるので便利。ただし、仕様が複雑で、例えばなぜかちょっとした書き方の違いで名前空間の接頭辞が必要になったりいらなかったりするのが僕はいまだによくわからない。
やっぱりナマのXMLを手で書くのは大変。これ、あってるのかなあ。XML Schemaを生成するコンパイラとか無いのかな。XML Schemaのチェックをするのはどうするのかな。XML Meta-Schemaがどこかに書いてあるのかな。
次回は、NSXMLDocumentを使ってこのDTDでダミーデータをチェックしたコードをメモすることにする。
はじめまして。Cocoa Break! というサイトをやってます。以前から時々読ませていただいてましたが、リンク集に掲載させていただきました。コメント等、何か問題がありましたら、いつでもご連絡ください。用件のみで失礼します。
by HK (2009-03-21 16:52)
コメントありがとうございます。「Cocoa Break! 」さんのリンク集に名前を連ねるなんて光栄です。僕はCocoa Break! さんやリンク集の他の方々と較べると、明らかに集中力が落ちるのでお恥ずかしい限りです。
以前からずっとCocoa Break! さんは参考にさせていただいていました。お世話になっておりますが、お世話になっていることをどこかで言及しなければいけないと思いながら今になってしまいました。大変失礼しております。
今後ともよろしくお願いします。
by decafish (2009-03-22 01:39)
いえいえ。光栄ってほど、たいしたページではないです。一人で細々とやってるので…。ずっと前から見てて、何度かリンクしようと思ったんですけど。翻訳更新に追われて、サイトの他の部分を放ったらかしのままだったり。最近やっと先が見えてきたんで、リンクを再び収集したり、なんて余裕も出てきました。ベジエの話とか興味深かったですよ。Core Graphics を触ってる人には役に立つ情報だと思います。形態測定学とか形状を近似して数値的に解析する場合、スプラインのほうがよく使われますけど。この2つの可換性とかはどうなんかな、とかいろいろ考えさせられました。こちらこそよろしくお願いします。
by HK (2009-03-22 19:32)
「興味深い」と言われるとうれしいです。僕は面白いと思えば行き当たりばったりに始めて、飽きたり行き詰まったりするとほったらかしにしてしまって、Cocoa Break! さんのようにちゃんと系統だてて進めていらっしゃるのを見ると、見習わなければと思うのですが。
「Cocoa Break! 」さんの翻訳はずっと前からありがたく使わせていただいていて、無しに済ますことは考えられないほどですので今後もがんばってください。お世話になります。
by decafish (2009-03-22 21:30)