在Java中,我们使用JAXB2进行了大量工作.对象< - > XML映射在Java类中定义为注释:
@XmlRootElement(name="usertask", namespace="urn:test")
public class UserTask
{
@XmlElement(namespace="urn:test")
public String getAssignee() { ... }
public void setAssignee(String assignee) { ... }
}
Run Code Online (Sandbox Code Playgroud)
JAXB运行时可以读取这些注释并创建unmarshaller以将XML解析为对象实例或将对象编组为XML.
JAXB提供了一个模式编译器(XJC),它可以从XML模式生成带注释的类,这是另一个很棒的特性.
最近我们一直在使用客户端JavaScript进行大量工作.我们还需要XML处理.例如,我们需要像这样解析WPS文档.这些文档也符合不同的XML模式(这里是示例XML 的WPS 1.0.0模式).使用JavaScript对象而不是XML会很棒,这可以节省大量的工作量.在某些情况下,我们可以使用基于JSON的解决方案,如DWR,但在许多情况下,我们必须在客户端处理XML.
我的问题是:
是否有一些JAXB for JavaScript的模拟?
一些工具可以将XML Schema编译成一些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()
})
}
]
});
Run Code Online (Sandbox Code Playgroud)
这应该足以构建unmarshaller或marshaller.
使用XSD.exe,我可以轻松地从XSD文件派生C#或VB.NET类.有没有可用于将XSD转换为JavaScript的工具?