工具schemagen.exe从类生成xsd定义,例如结果是
<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="aa/bb" xmlns:a="aa/bbb" xmlns:tns="aa/bb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
当我在包级别上放入package-info.class时:
@XmlSchema(namespace = "aa/bb",
elementFormDefault = XmlNsForm.QUALIFIED,
xmlns = {@XmlNs(prefix="a", namespaceURI="aa/bb"),
@XmlNs(prefix="xs",namespaceURI="http://www.w3.org/2001/XMLSchema")})
package aa.bb;
import javax.xml.bind.annotation.*;
关键是现在存在两个前缀:我首选的短前缀:a和schemagen.exe自动生成tns前缀。这是一个棘手的问题,因为所有生成的类型都使用tns前缀,如果在没有tns的情况下使用我自己的前缀,我会很高兴。 我该怎么办?
答案 0 :(得分:1)
这是低技术且容易出错的,但为什么不在文本编辑器中打开XSD文档并使用一些精心选择的全局搜索和替换命令?
答案 1 :(得分:1)
学会喜欢tns?毕竟,使用它来表示XML模式中的目标命名空间是一种惯例。
答案 2 :(得分:0)
在运行时,您可以使用JAXB NamespacePrefixMapper更改所选内容的生成前缀。