Tag: xsd

使用Java查找可在xml架构中重复的项目

我想从XML模式中推导出一对(parentTag, childTag) ,以便允许parentTag将parentTag多个实例包含为直接子项。 手动完成,我在模式中查找maxOccurs属性,查看元素标记和直接父标记。 例如,来自 我应该得到夫妇(A,B)和(ANOTHER,B) (A,B) (ANOTHER,B) 。 我有一个使用XSLT的工作解决方案将我的架构转换为这样的(parentTag, childTag)夫妇的列表。 在Java中有一种优雅的方法吗? 您建议使用哪个库来实现此目的?

在JIBX中绑定

嗨,我刚刚开始使用JIBX,我很难掌握Binding概念。 我已经从XSD文件生成了JAVA类我正在使用Windows,这里是我的文件夹是结构的方式 d:\ Libraries \这个文件夹包含下载的jibx文件夹,所以像jibx-tools.jar这样的rar库位于d:\ Libraries \ jibx \ lib ….. 现在Libraries文件夹还包含一个名为dwcode2的文件夹我在D:\ Libraries \ jibx \ dwcode2中有一个名为starter.xsd的XSD文件 我使用DOS D:\ Libraries \ jibx \ dwcode2> java -cp .. \ lib \ jibx-tools.jar org.jibx.schema.codegen.CodeGen -t gen \ src -w starter中的命令生成了JAVA文件。 XSD 因此,JAVA文件在D:\ Libraries \ jibx \ dwcode2 \ gen \ src \ org \ jibx \中生成 binding.xml是在D:\ […]

Apache Axis – 序列化为0001-01-01T00:00:00.000Z的日历实例

我正在使用Apache Axis与用.Net编写的Web服务进行通信。 当WS遇到DateTime.MinDate (即“0001-01-01”)时,其中一个函数具有特殊处理。 现在,我正在尝试将此特殊值发送到WS,但似乎没有与Java中的DateTime.MinDate等效。 您可能知道,Axis将xsd:dateTime包装到Calendar对象中,所以我尝试发送new GregorianCalendar(1 ,1 ,1); 但这并没有成功。 我尝试了calendar.setTime(new Date(0)) ,我尝试了更多组合,但似乎没有任何序列化 0001-01-01T00:00:00.000Z 这就是我需要的。 有谁知道如何实现这一目标?

使用JDOM使用xsdvalidationxml

我试图使用JDOM使用xsdvalidationxml。 这是我的validation代码: – public class jdom1 { public static void main(String[] args) throws JDOMException, IOException { // TODO Auto-generated method stub File xsdfile = new File(“file.xsd”); XMLReaderJDOMFactory schemafac = new XMLReaderXSDFactory(xsdfile); SAXBuilder builder = new SAXBuilder(schemafac); Document doc = builder.build(new File(“file.xml”)); Element root = doc.getRootElement(); for(Element testCase : root.getChildren()){ //Code } } 我的file.xml: – 1 […]

XJC – 编译器无法遵守此类自定义

我想从我的Java项目调用ISAN Restful API,所以我试图使用maven-jaxb2-plugin从xsd文件生成java bean。 这是xsds: http://www.isan.org/schema/v1.11/common/common.xsd http://www.isan.org/schema/v1.21/common/serial.xsd http://www.isan.org/schema/v1.11/common/version.xsd http://www.isan.org/ISAN/isan.xsd http://www.isan.org/schema/v1.11/common/title.xsd http://www.isan.org/schema/v1.11/common/externalid.xsd http://www.isan.org/schema/v1.11/common/participant.xsd http://www.isan.org/schema/v1.11/common/language.xsd http://www.isan.org/schema/v1.11/common/country.xsd 我下载了这些文件并将它们复制到我的src / main / resources文件夹中并定义了一个目录。 当我构建项目时,我收到一个错误,因为两个类型具有相同的名称: org.xml.sax.SAXParseExceptionpublicId: http://www.isan.org/schema/v1.11/common/language; systemId: http://www.isan.org/schema/v1.11/common/language.xsd; lineNumber: 39; columnNumber: 48; A class/interface with the same name “org.isan.CodingSystemType” is already in use. Use a class customization to resolve this conflict. org.xml.sax.SAXParseExceptionpublicId: http://www.isan.org/schema/v1.11/common/country; systemId: http://www.isan.org/schema/v1.11/common/country.xsd; lineNumber: 39; columnNumber: 48; […]

如何在另一个XSD中导入XSD

我试图将xsd导入另一个xsd。 我看到一些问题需要导入。 我无法理解网络中提供的解决方案。 下面是我的XSD。 我有HEADER.xsd。 所有其他xsd都很常见。 HEADER.XSD MESSAGE1.XSD 在这里我试图导入被调用的元素,因为它对于所有xsd的[MESSAGE1.XSD MESSAGE2.XSD等]是常见的。 exception说:不是有效的:src-resolve.4.2:解析组件’xs:reqHeader’时出错。 检测到’xs:reqHeader’位于命名空间’ http://www.w3.org/2001/XMLSchema ‘中,但此命名空间中的组件无法从架构文档’file:/ D:/ Projects / workspace /引用消息/资源/ XSD / MESSAGE1.xsd”。 如果这是不正确的命名空间,则可能需要更改’xs:reqHeader’的前缀。 如果这是正确的命名空间,则应将相应的“import”标记添加到’file:/ D:/Projects/workspace/Message/resources/xsd/MESSAGE1.XSD’。 我的项目结构是: / src目录/ COM / lib目录 /resources/xsd/MESSAGE1.XSD 请有人帮我解决。

调用webservice的问题 – javax.xml.ws.WebServiceException和类没有名称的属性

我有一个wsdl文件,很多xsd文件,jxb绑定文件。 我使用Apache CXF cxf-codegen-plugin创建了一个Web服务客户端。 创建Java类时没有任何错误。 但是当我尝试调用任何生成的方法时,我得到一个exception: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply 我像这样调用webservice方法(不要担心空值): AmadeusWebServices aws = new AmadeusWebServices(); aws.getAmadeusWebServicesPort().fareMasterPricerCalendar(null, null); 堆栈跟踪: Exception in thread “main” javax.xml.ws.WebServiceException: class com.amadeus.xml.pnracc_11_1_1a.PNRReply do not have a property of the name {http://xml.amadeus.com/PNRACC_11_1_1A}PNR_Reply at com.sun.xml.internal.ws.client.sei.ValueSetter$AsyncBeanValueSetter.(ValueSetter.java:165) at com.sun.xml.internal.ws.client.sei.ValueSetterFactory$AsyncBeanValueSetterFactory.get(ValueSetterFactory.java:67) at com.sun.xml.internal.ws.client.sei.SEIMethodHandler.buildResponseBuilder(SEIMethodHandler.java:163) at com.sun.xml.internal.ws.client.sei.AsyncMethodHandler.(AsyncMethodHandler.java:121) […]

可以进行哪些向后兼容的XSD更改?

如何在不影响消费应用程序(如果不升级)的情况下更改REST接口的XML Schema?

Spring WS WSDL自动曝光:不遵循xsd导入

我正在尝试基于多个xml架构为Spring WS Web服务动态生成WSDL。 我有一个多个xsd文件,所有这些文件都是使用xsd:import元素“连接”的。 Spring WS参考说: 如果要使用包含或导入的多个模式,则需要将Commons XMLSchema放在类路径上。 如果Commons XMLSchema在类路径上,则上述元素将遵循所有XSD导入和包含,并将它们作为单个XSD在WSDL中内联。 这极大地简化了模式的部署,这仍然可以单独编辑它们。 所以我添加了这个maven依赖: org.apache.ws.xmlschema xmlschema-core 2.2.1 并以这种方式配置WSDL构建器: @Bean(name=”updateContactService”) public DefaultWsdl11Definition defaultWsdl11Definition() throws Exception { DefaultWsdl11Definition wsdl11Definition = new DefaultWsdl11Definition(); wsdl11Definition.setPortTypeName(“updateContactPort”); wsdl11Definition.setLocationUri(“/ws/updateContact”); wsdl11Definition.setTargetNamespace(“http://spring.io/guides/gs-producing-web-service”); wsdl11Definition.setSchema(updateContactXsd()); return wsdl11Definition; } @Bean public XsdSchemaCollection updateContactXsd() throws Exception { return new SimpleXsdSchema(new ClassPathResource(“xsds/contact/outboundMessage.xsd”)); } 但生成的WSDL只包含一个架构元素(并显示导入错误的位置)。 有小费吗? Spring WS版本是2.3.1

如何使用Saxon java库命令行工具执行schematronvalidation?

非常基本的问题 – 我有一个xml文件,我想根据一个schematron文件validation它。 如何使用Saxon命令行执行此操作? 根据命令行参考,我没有看到任何指定schematron文件的选项。