我有一个读取和写入 MQ 队列的 JMS 消息传递应用程序。消息数据是字符串形式和 xml 格式(减去正常的标头标记,如 xml 版本等)。我正在寻找读取、写出和验证 xsd 模式的最佳方法,但是我遇到的示例都是关于处理文件的。
有没有办法(那里有教程)来获取一个 xml 字符串?读入并验证它并对我创建的 xml 字符串执行相同的验证和写出而不写入磁盘?
将不胜感激任何指针。
查看 Java SE 中的 javax.xml.validation API,特别是用于根据 XML 模式验证 XML 内容的 Validator 类:
在字符串上使用 StringReader,将阅读器传递给 JAXB 方法以读取内容。
谢谢大家,我设法用以下方法解决了这个问题。
马歇尔:
JAXBContext jaxbContext = JAXUtility.getContext(packageLocation); StringWriter sw = new StringWriter(); Marshaller m = jaxbContext.createMarshaller(); m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); if (o instanceof UnadvisedDeal) { m.marshal((UnadvisedDeal) o,sw);
解组:
JAXBContext jaxbContext = JAXUtility.getContext(packageLocation); 解组器 um = jaxbContext.createUnmarshaller(); ud = (UnadvisedDeal) um.unmarshal(new StringReader(sw.toString()));
谢谢你的帮助