使用模式中缺少的属性生成XML

时间:2012-08-23 22:16:14

标签: java xml jaxb

我正在使用JAXB生成OpenOffice XML,并且需要将xml:space="preserve"属性应用于t元素。

    <r>
        <t>
            foo
        </t>
    </r>

应该是

    <r>
        <t xml:space="preserve">
            foo
        </t>
    </r>

我使用JAXB从Open Office模式生成Java类。 <t>类型在CTRElt Java类中表示为String,因此无法设置此属性。当我从现有文档和编组解组时,先前存在的space属性不再存在。

架构的相关部分如下:

<xsd:element name="t" type="ST_Xstring" minOccurs="1" maxOccurs="1"> <xsd:annotation> <xsd:documentation>Text</xsd:documentation> </xsd:annotation> </xsd:element>

<xsd:simpleType name="ST_Xstring"> <xsd:annotation> <xsd:documentation>Escaped String</xsd:documentation> </xsd:annotation> <xsd:restriction base="xsd:string" /> </xsd:simpleType>

如何生成具有此必需space属性的XML?修改架构不是一种选择。我是否需要自定义JAXB?

1 个答案:

答案 0 :(得分:0)

我最终生成了XML并使用正则表达式添加属性:(