2012-04-24 16 views
0

PythonでEmotionML(感情のマシン表現のためのW3Cの言語)のリファレンス実装を設計しています。XMLバインディングのデータ型に関するいくつかの設計提案をしたいと思います(私はいくつかのデザインアイディアをcrowdsourcingしています)。Python XMLバインディング

似たようなデザインとコードの提案や指針をお伝えしたいと思います。私の傾向はちょうどJavaのパスを使用することです。私は、XMLの構造に対応するオブジェクトを作成し、それらをDOMに変換することに慣れています。

OOは私に多型を与えますが、より複雑なオブジェクト構造を作成します。Pythonは組込みコレクションのセット表現と使用について非常に優れています。

私は可能なよりエレガントなアプローチを探しています。私自身の非オブジェクト構造体を定義し、これを調べてDOMに変換できますか?

リストや辞書を使用してオプションの必須属性、要素をどのように表現できますか?

これらはすべて私の設計思想とジレンマであり、助けを求める叫び声ではありません。

私はこれらのことを自分で考え出すことができたので、経験豊富なPythonデザイナーや開発者からの成熟した慈悲深い提案を真に求めています。事前に

おかげで、 エドモン

+0

"この質問は、Q&A形式にはあまり適していません。一般的に、事実、参考文献、または特定の専門知識が含まれていると考えられます。この質問は意見、討論、議論、投票、 – larsks

答えて

2

データバインディングは、JavaやC#に比べてPythonの世界では非常に一般的ではありません。これは、Pythonには非常に優れたXML APIがあり、DOMである恐ろしい怪物の代わりに使用されているからです。

彼らはあなたのニーズを満たすかどうかを確認するために、これらのAPIを調査:(lxmlので見つかった、Amara4SuiteGnosis utils)(標準ライブラリとlxmlで見つかった)

  • ElementTreeの
  • 客観。
3

または、generateDS.pyを使用することができます。これは、PythonのXMLバインダーとなることを目的としています。スキームの定義が与えられると、Pythonで自動的にデータクラスが生成され、xmlのエクスポート/インポートメソッドも生成されます。

関連する問題