首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据Schematron验证WebService消息

根据Schematron验证WebService消息
EN

Stack Overflow用户
提问于 2017-05-17 14:26:06
回答 1查看 295关注 0票数 0

我使用JAX和wsimport生成了一个web服务客户机。

这是我的客户代码:

代码语言:javascript
复制
URL url = new URL("http://localhost:9999/ws/processstuff?wsdl");
QName qname = new QName("namespace", "ProcessStuffImplService");
Service service = Service.create(url, qname);
ProcessStuffInterface processStuffInterface = service.getPort(ProcessStuffInterface.class);

ProcessStuffObject processStuffObject = new ProcessStuffObject();
//Web service call
processStuffInterface.processStuff(processStuffObject);

在进行上述web服务调用之前,我需要根据给定的Schematron规则验证processStuffObject。我看过类似ph-schematron这样的库,但似乎只能在File或类似的对象上进行验证。有人知道如何根据Schematron规则验证JAX生成的对象,比如我的ProcessStuffObject吗?

更新:

现在,我已经将ProcessStuffObject编组到一个可以使用ph-schematron验证的File对象,但这似乎是一个非常愚蠢的解决方案。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-18 07:01:00

JAXB通常会使用JAXB将对象封送到XML,以便将接收到的XML发送到线路上,并将接收到的XML解封为对象。JAXB提供了一些有用的东西,可以透明地处理像XML这样的对象,而不必首先显式地将其封送到文件、字符串、字节数组或其他中间表示形式。

您需要的类是JAXBSource。它实现了javax.xml.transform.Source接口,并允许您提供对象和JAXBContext或Marshaller。然后,您可以将其作为转换或其他采用此类实例的方法的源。一些ph-schematron方法接受源作为输入,就像这个

如果将Schematron文件预编译到XSLT中,则只需使用Java转换API并向转换器提供Source。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44027644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档