Java では、JAXB2 をよく使用します。Object<->XML マッピングは、Java クラスの注釈として定義されます。
@XmlRootElement(name="usertask", namespace="urn:test")
public class UserTask
{
@XmlElement(namespace="urn:test")
public String getAssignee() { ... }
public void setAssignee(String assignee) { ... }
}
JAXB ランタイムは、これらの注釈を読み取り、アンマーシャラーを作成して、XML をオブジェクト インスタンスに解析したり、オブジェクトを XML にマーシャリングしたりできます。
JAXB には、XML スキーマから注釈付きクラスを生成できるスキーマ コンパイラ (XJC) が付属しています。これは、もう 1 つの優れた機能です。
最近、私たちはクライアントサイドの JavaScript を使って多くの作業を行っています。そこでも XML 処理が必要です。たとえば、このような WPS ドキュメントを解析する必要があります。これらのドキュメントは異なる XML スキーマにも準拠しています (サンプル XMLの WPS 1.0.0 スキーマはこちら)。XML の代わりに JavaScript オブジェクトを使用するのは素晴らしいことです。これにより、非常に多くの労力が節約されます。DWRのような JSON ベースのソリューションを使用できる場合もありますが、多くの場合、クライアント側で XML を処理する必要があります。
私の質問は:
JavaScript 用の JAXB の類似物はありますか?
XML スキーマを XML<-> オブジェクト マッピングにコンパイルし、XML オブジェクトと JavaScript オブジェクトを変換するランタイムを提供するツールはありますか?
次のような形式で生成されたマッピングを簡単に想像できます。
UserTask = new JSXML.XmlRootElement({
name: "usertask",
namespace: "urn:test",
properties: [
{
assignee: new JSXML.XmlElement({
name: "assignee",
namespace: "urn:test",
type: new JSXML.XSD.String()
})
}
]
});
そして、これはアンマーシャラーまたはマーシャラーを構築するのに十分なはずです。