在Java中编组时如何更改xml元素名称

时间:2019-03-08 12:10:58

标签: java xml jaxb marshalling xjc

我正在尝试使用Java创建xml文件。预期输出如下所示

预期输出

<?xml version="1.0" encoding="utf-8"?>
<Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" 
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" 
xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
<cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID>
<cbc:ID>2019-112</cbc:ID>
<cbc:IssueDate>2019-01-21</cbc:IssueDate>
<cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
</Invoice>      

实际输出

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns4:Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns:ns2="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2" xmlns:ns3="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:ns4="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2">
<CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</CustomizationID>
<ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</ProfileID>
<InvoiceTypeCode>380</InvoiceTypeCode>
</ns4:Invoice>

为清楚理解,让我们在预期输出中使用“ cbc:CustomizationID”,但在实际输出中仅使用“ CustomizationID”

2 个答案:

答案 0 :(得分:0)

实际输出与预期的相同。只需更改名称空间的应用方式即可。

XML解析器应将其完全相同。

看看XML namespaces

答案 1 :(得分:0)

在使用xjc命令生成Java类之后,我已经更改了@XmlElement(name =“ cbc:CustomizationID”,required = true)。部分问题已解决,但需要将根元素更改为

的插入