我在谷歌上搜寻了一些资料,但我相信这里的某个人可以比我更快地提供答案。我正在使用binding.xjb文件运行XJC2Task (org.jvnet.jaxb2_commons.xjc.XJC2Task)从一些XSD生成Java源代码。
我们想要从第三方获得的数据中删除一些个人信息。我能否通过bindings.xjb文件将某些元素指定为@XMLTransient或完全忽略它们?
例如,如果我有以下xsd:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="test.3.0" xmlns="test.3.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="TestInfo" type = "TestInfo">
<xs:annotation>
<xs:documentation>TestInfo schema</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="TestInfo">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
<xs:element name="id" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
在我的binding.xjb文件中,我有以下内容:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:inheritance="http://jaxb2-commons.dev.java.net/basic/inheritance"
jaxb:extensionBindingPrefixes="inheritance">
<jaxb:globalBindings>
<jaxb:serializable uid="1" />
</jaxb:globalBindings>
<jaxb:bindings schemaLocation="schema/test.xsd">
<jaxb:schemaBindings>
<jaxb:package name="org.test" />
</jaxb:schemaBindings>
</jaxb:bindings>
有没有办法可以从这里删除id? 我希望不需要重新学习 XSLT 就能完成这个操作。 ;D
id
注解为@XmlTransient
。 - lexicore