javascript - 是否有用于 XML 绑定(bind)的 JavaScript API——类似于 Java 的 JAXB?

标签 javascript xml jaxb dwr jsonix

在 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) { ... }
}

JAXB 运行时可以读取这些注释并创建解码器以将 XML 解析为对象实例或将对象编码为 XML。

JAXB 提供了一个模式编译器 (XJC),它可以从 XML 模式中生成带注释的类,这是另一个很棒的特性。


最近我们一直在使用客户端 JavaScript。我们还需要在那里进行 XML 处理。比如我们需要解析this one这样的WPS文档.这些文件也符合 different XML schemas (此处为示例 XML 的 the WPS 1.0.0 schema)。使用 JavaScript 对象而不是 XML 会很棒,这真的可以节省大量工作。在某些情况下,我们可以使用基于 JSON 的解决方案,例如 DWR ,但在许多情况下,我们确实必须在客户端处理 XML。

我的问题是:

是否有一些 JAXB for JavaScript 的类似物?

一些工具可以将 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()
      })
    }
  ]
});

这应该足以构建 unmarshaller 或 marshaller。

最佳答案

到目前为止,我没有找到任何与我需要的相似的东西。因此我决定自己实现它。这是项目页面:

http://confluence.highsource.org/display/MISC/Jsonix

该项目托管在 GitHub 上:

https://github.com/highsource/jsonix/

关于javascript - 是否有用于 XML 绑定(bind)的 JavaScript API——类似于 Java 的 JAXB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3819192/

相关文章:

javascript - 如何在函数调用中传递参数?

javascript - Ajax数据嵌入页面而不是返回正确的结果

python - 使用 Jenkins 可视化旧的 JUnit XML 文件

Android 应用程序 - 使用 Gridlayout 溢出屏幕大小

java - Glassfish 5 忽略 JAXB @XmlJavaTypeAdapter 注释?

php - "Make this your Default Search engine"按钮?

javascript - 无法使用 Node.js 正确解析 Azure 函数内的 multipart/form-data

java - JAXB 逐个元素解码列表

java - 字符串到 joda LocalDate,格式为 "dd-MMM-yy"

java解码à的错误转换