JAXB XJC 代码生成——“schemaLocation"Marshaller 生成的 xml 中缺少 [英] JAXB XJC code generation - "schemaLocation" missing in xml generated by Marshaller
本文介绍了JAXB XJC 代码生成——“schemaLocation"Marshaller 生成的 xml 中缺少的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我使用 XJC 工具为我的 XSD 模式生成 Java 类.当我使用 JAXB Marshaller 将类编组到 XML 有效负载中时,我在输出 XML 中缺少schemaLocation"参数,但我在 xsd 文件中声明了这个参数.如何在输出 XML 中强制执行schemaLocation"参数?
I Use XJC tool to generate Java classes for my XSD schema. When I use JAXB Marshaller to marshall classes into XML payloads, I'm missing "schemaLocation" parameter in the output XML, but I declare this parameter in xsd file. How to enforce "schemaLocation" parameter in the output XML?
以下是用于代码生成的 xsd 架构文件的开头:
Below is the begining of my xsd schema file used for code generation:
<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="xsdns" xmlns:messages="http://www.exampleURI.com/Schema1" xmlns:datatypes="http://www.exampleURI.com/Schema1" xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:schemaLocation="http://www.exampleURI.com/Schema1 ./messages.xsd" targetNamespace="http://www.exampleURI.com/Schema1" elementFormDefault="unqualified" version="true">
<xs:include schemaLocation="datatypes.xsd"/>
<xs:complexType name="execute-system-command-struct">
<xs:annotation>
<xs:documentation>The request for system command execution.</xs:documentation>
</xs:annotation>
<xs:sequence/>
<xs:attribute name="action" type="datatypes:system-action-kind-enum" use="required">
<xs:annotation>
<xs:documentation>The action that the Voice System has to proceed.</xs:documentation>
</xs:annotation>
</xs:attribute>
问候
推荐答案
试试这个:
marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "http://my.namespace my.schema.xsd");
这篇关于JAXB XJC 代码生成——“schemaLocation"Marshaller 生成的 xml 中缺少的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文