phobosのstd.xmlの状態はどうですか?

私はphpベースのOOP Webフレームワークをd言語に移植する作業の最初に取り組んでいます。ファイルやストリームからxmlを読み込むためにphobosのstd.xmlクラスに頼っても安全かどうか調べるのにはいくつか問題があります。 std.xml を置き換えるのにはちょっとしたおしゃべりがあるようです.100%dxmlパーサを使用することを検討しています。

これは非常にホビープロジェクトなので、私は自分自身の車輪をそれほど設計するのは気にしません。楽しい運動であり、言語の詳細をもっと早く学ぶ機会を与えてくれます。一方、私が自分自身を転がす必要がなければ、私は潜在的にもっと速く動く可能性があります。

基本的にほぼ完全な xml 1.0仕様をサポートする必要があります。特に注目すべきは、 xml namespaceとxincludesが正しく動作するようにします。また、私のAPIがphpの DOMDocument 、c#のSystem.Xml.XmlDocument およびjavascriptのDOM実装と多かれ少なかれ一致するようにしたいと思います。特に最後のビットはフォボスから見えないようです。また、フォボスはまだやや流動的であるように見えますが、フラックスの速さに敏感ではありません。

The big question therefor is: is it safe to rely on the parsing tools in phobos' std.xml being able to provide the lions share of my requirements, or should I write something from the ground up in my own library to be safe?

答えるときに私の要件を考慮してください:

  1. 完全なxmlnsサポート
  2. xincludes
  3. ファイル、ストリームまたは文字列から読み取ることができる必要があります
  4. できるだけ大きなDOM実装と仕様に似ている必要があります
4

2 答え

std.xml は使用しないでください。それはひどい図書館であるという事実を別にして、ある時点で置き換えられるだろう。

4
追加された
私はAndrei(IRC)と話しました。彼はstd.xmlがドードーの道を進んでいることを確認しました。あなたにタイムラインを与えることはできません。
追加された 著者 Bernard,
それが私が心配していることです。あなたはそれについて詳しく説明できますか?誰がそう言った? (ウォルター・ブライトやアンドレイ・アレクサンドルシュクは、それは多くの重量を運ぶと言っている...)
追加された 著者 Kris,
素晴らしい情報、ありがとう!
追加された 著者 Kris,
@ジョナサン・マダヴィス:まあ、私は無期限に待つつもりはありません。実際、私はすでにGithub( github.com/theredhead/red.xml
追加された 著者 Kris,
@gmfawcett:私は同意する、最も効率的ではないが、どれくらいの楽しい1人の男が持つことができますか?
追加された 著者 Kris,
取り替えは既に作業中ですが、準備ができたら、それを実装する人がいつ終了するかによって決まります。その後、Digitalmars.Dニュースグループで正式に審査され、レビューと投票が完了すると、Phobosに投入されます。しかし、それのための設定日はありません。残念ながら、それは時間がかかります。私はそれが少なくとも数ヵ月かかるだろうと思う。
追加された 著者 Jonathan M Davis,
@Kris自由にしてください。それには何も問題ありません。しかし、std.xmlは比較的近い将来に置き換えられるので、そうしなくてもそれに頼るのは良い考えではありません。
追加された 著者 Jonathan M Davis,
少なくとも1つのstd.xmlの置き換えが既に行われています(Dのディスカッションリストでstd.xml2を検索してください;私はリンクがありません)。個人的に、私はlibxml2とlibxsltのラッピングに成功しました。私は完全なバインディングを持っていません。ちょうど、自分のプロジェクトを開始することが最も効果的な解決策ではないかもしれないと言っています。
追加された 著者 gmfawcett,
4年後、それはまだそこにあり、標準的な選択肢なし。いい仕事D!
追加された 著者 Korobochka,

std.xml is going to be replaced. But there a DOM xml parser for D2, perhaps you should try it. It's in github (dom.d) : https://github.com/adamdruppe/misc-stuff-including-D-programming-language-web-stuff

2
追加された