加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何使用Woodstox StAX 2在XML中序列化/反序列化类

发布时间:2020-12-16 22:53:59 所属栏目:百科 来源:网络整理
导读:我几乎试图归档,在 Java中用 how-to-serialize-deserialize-simple-classes-to-xml-and-back(C#)做了什么.如果可能的话,我想避免为每个类编写序列化/反序列化方法. 例如,序列化的一部分: XMLOutputFactory xof = null; XMLStreamWriter2 writer = null; try
我几乎试图归档,在 Java中用 how-to-serialize-deserialize-simple-classes-to-xml-and-back(C#)做了什么.如果可能的话,我想避免为每个类编写序列化/反序列化方法.

例如,序列化的一部分:

XMLOutputFactory xof = null;
    XMLStreamWriter2 writer = null;

    try {
        resp.setContentType("text/plain");
        xof = XMLOutputFactory.newInstance();
        writer = (XMLStreamWriter2) //
        xof.createXMLStreamWriter(resp.getOutputStream());

        writer.writeStartDocument("1.0");
        writer.writeStartElement("data");
        // 
        // Magic happens here.
        //
        writer.writeEndElement();
        writer.writeEndDocument();
    } catch (XMLStreamException e) {
        e.printStackTrace();
        resp.sendError(1,"Problem 1 occured.");
    } finally {
        try {
            writer.flush();
            writer.close();
        } catch (XMLStreamException e) {
            e.printStackTrace();
            resp.sendError(2,"Problem 2 occured.");
        }
    }

不是这个问题的一部分,因为我试图逐一解决问题,但可能会让你了解我正在尝试做什么.当我反序列化时,我还想检查输入是否有效.最终我想使用序列化形式的XSLT转换.

解决方法

JAXB是将Java对象序列化为XML的方式.以下内容将帮助您入门:

> http://wiki.eclipse.org/EclipseLink/Examples/MOXy/GettingStarted

JAXB实现

该标准有几种实现方式:

> EclipseLink MOXy(我是技术主管)
> Metro(参考实现,包含在Java SE 6中)
> JaxMe

Woodstox StAX 2

JAXB接受许多输入/输出格式,包括StAX.

验证

使用Unmarshaller将XML转换为对象,并使用Marshaller将对象转换为XML.您可以设置javax.xml.validation.Schema的实例以在这些操作期间验证输入.

您还可以直接使用JAXB使用javax.xml.validation API,请查看以下示例:

> Checking a java value with an xml schema

XSLT

Java中使用javax.xml.transform库来执行XSLT转换. JAXB旨在使用JAXBSource和JAXBResult来处理这些库.

欲获得更多信息

看看我的博客:

> http://bdoughan.blogspot.com

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读