代码之家  ›  专栏  ›  技术社区  ›  lexicore

是否有用于XML绑定的JavaScript API—类似于JAXB for Java?

  •  16
  • lexicore  · 技术社区  · 14 年前

    @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处理。例如,我们需要解析WPS文档 this one . 这些文件也符合 different XML schemas (这里是 the WPS 1.0.0 schema DWR ,但在许多情况下,我们必须在客户端处理XML。

    我的问题是:

    有什么工具可以将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()
          })
        }
      ]
    });
    

    这应该足够漂亮,以建立解编或封送员。

    4 回复  |  直到 13 年前
        1
  •  0
  •   sagemintblue    13 年前

    JAXB的JSON支持如何?重用当前的JAXB注释模型类,但从REST端点输出JSON。

    Jersey jersey-json 模块)带 JSONJAXBContext .

    Jackson JAXB JAX-RS

        2
  •  28
  •   lexicore    10 年前

    到目前为止,我还没有找到与我所需要的相似的东西。所以我决定自己去实现它。以下是项目页面:

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

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

        3
  •  3
  •   Ben Taitelbaum    14 年前

    我还没有尝试过这个,所以我不确定它是否有效,但是您是否考虑过使用GWT以便您仍然可以使用JAXB并将整个应用程序编写为java应用程序?我不确定GWT是否支持JAXB(可能不支持),但它可能会支持另一种xml解析方法。如果这样做有效,您可以通过gwt自动创建javascript模型,然后将这些模型包含到您的应用程序中。是的,它比你想要的要简陋得多,但总比从头开始写要好。

        4
  •  2
  •   Mic    14 年前

    您可以做的是将一个通用样式表定义:XSLT添加到XML中,以将它们转换为JSON。 如: http://code.google.com/p/xml2json-xslt/


    样式表会给您的请求增加一点开销。无论是在服务器端还是客户端,您都可以选择,但是您必须将其与在不同浏览器上使用Javascript解析和读取XML的代码复杂性和速度进行比较。