我已经环视了一下谷歌,但我敢肯定这里的某个人可以提供比我更快地追踪它的答案。我使用binding.xjb文件运行XJC2Task(org.jvnet.jaxb2_commons.xjc.XJC2Task)以从一些XSD生成Java源代码。JAXB绑定排除字段
我们正在寻求删除我们从第三方收到的一些个人信息。有没有一种方法可以将@XMLTransient指定为某些元素,或者直接从bindings.xjb文件中忽略它们?
因此,例如,如果我有以下的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
请包括您的代码。 – Gemtastic
您可以使用我的[jaxb-annotate-plugin](https://github.com/highsource/jaxb2-annotate-plugin)将'id'注释为'@ XmlTransient'。 – lexicore
“从数据中删除......信息......”:你是什么意思?你想编辑XML并创建缩减的副本吗?您想在解组期间跳过XML元素吗?或在编组期间? – laune