工具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前缀的生成中使用,我会很高兴。我该怎么做?
发布于 2009-09-28 14:32:15
这技术含量低且容易出错,但为什么不在文本编辑器中打开XSD文档,并使用一些精心选择的全局搜索和替换命令呢?
发布于 2009-09-28 14:33:49
学着喜欢tns?毕竟,使用它来表示XML模式中的目标名称空间是一种惯例。
发布于 2009-09-29 07:53:58
在运行时,您可以使用JAXB NamespacePrefixMapper为您选择的前缀更改生成的前缀。
https://stackoverflow.com/questions/1487330
复制相似问题