1

XML は、ドキュメント (メタデータを含むコンテンツ) を保存するのに適したファイル形式です。JSON は、データの保存に適したファイル形式です。

エンコード操作に適した類似のファイル形式標準はありますか? 言い換えれば、小さな軽量のドメイン固有言語をエンコードするのに適した標準ファイル形式はありますか? 私が考えているのは、文字列データのみで構成される単純な DSL であり、単純なコマンドは 12 個以下です。私の言語は、非常に単純な方法 (条件やループなし) でコマンドを次々と呼び出すことで構成されます。

現在、XML を使用して一連の操作をエンコードしており、各タグは異なるコマンドを表しています。SAX パーサーは、各要素を関数呼び出しとしてディスパッチします。見るのは非常に難しいです。エレガントなソリューションのようには感じません。

理想的には、Python で作業し、独自のパーサーを作成せずに...確立された標準ファイル形式を使用する利点を得ようとしています。代替手段の 1 つは python 自体を使用することですが、もちろん、言語に中立な標準があればそれを使用したいと思います。

4

3 に答える 3

1

XMLがその役割を果たしているが、読みやすさが問題である場合は、 YAMLの良いユースケースになる可能性があります。(Pythonサポート)。

「XMLアングルブラケット税」に関する優れたCodingHorrorの投稿があります

于 2012-06-07T20:18:03.033 に答える
0

Qt の QML フレームワークは、 QML 言語要素セットを拡張して C++ オブジェクトに基づくカスタム要素を含めることにより、DSL 開発への代替パスを提供します。Python バインディングはPySideで利用できます。

QML は主に UI 開発に使用されますが、QML は任意のオブジェクト ツリーを表すように拡張できます。

たとえば、このスニペットは新しい QML 要素 (PieChart) を定義し、QML システムに登録され、QML 言語で使用されます。

import sys
from PySide.QtCore import *
from PySide.QtGui import *
from PySide.QtDeclarative import *

class PieChart (QDeclarativeItem):
   ... 

PieChart は QML システムに登録されています。

 qmlRegisterType(PieChart, 'Charts', 1, 0, 'PieChart');

QML (DSL) 側では、PieChart をインポートして使用できます。

import Charts 1.0
import Qt 4.7

Item {
    ...

    PieChart {
        id: aPieChart
        anchors.centerIn: parent
        width: 100; height: 100
        name: "A simple pie chart"
        color: "red"
    }
 ...
于 2012-06-12T21:41:39.890 に答える