Java schemagen.exe生成tns前缀

Java schemagen.exe生成tns前缀,java,xsd,jaxb,Java,Xsd,Jaxb,工具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"> 关键是现在存在两个前缀:我首选的短前缀:a和schemagen.exe自动生成的tns前缀。这是一个小

工具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">
关键是现在存在两个前缀:我首选的短前缀:a和schemagen.exe自动生成的tns前缀。这是一个小问题,因为所有生成的类型都使用tns前缀,如果在没有tns前缀的生成中使用我自己的前缀,我会很高兴。
我该怎么做?

这是一种低技术且容易出错的方法,但是为什么不在文本编辑器中打开XSD文档,并使用一些精心选择的全局搜索和替换命令呢?

学习如何喜欢tns?毕竟,使用它来表示XML模式中的目标名称空间是一种惯例

在运行时,您可以使用JAXB更改所选前缀的生成前缀

@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.*;