Excel到XML命名空间前缀自定义

我正在使用Excel 2013通过使用XML映射将电子表格中的数据转换为XML格式。 转换工作正常,但Excel会将输出文件中的所有XML名称空间前缀默认为“ns1”,如下面的代码所示。

XML到Excel转换

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ns1:CarrierInterface xmlns:ns1="http:/exampleurl.com/"> <ns1:Sender>sender</ns1:Sender> <ns1:Receiver>receiver</ns1:Receiver> <ns1:RecordCount>1</ns1:RecordCount> <ns1:SequenceID>143</ns1:SequenceID> <ns1:Device> <ns1:ID>123456789</ns1:ID> <ns1:Make>make</ns1:Make> <ns1:Model>model</ns1:Model> <ns1:ModelYear>2017</ns1:ModelYear> <ns1:DeviceWiFiType>True</ns1:DeviceWiFiType> <ns1:PairingState>Initial</ns1:PairingState> </ns1:Device> </ns1:CarrierInterface> 

期望的输出

 <?xml version="1.0" encoding="UTF-8"?> <carrierInterface:CarrierInterface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:carrierInterface="http:/exampleurl.com/" xsi:schemaLocation="http:/exampleurl.com/"> <carrierInterface:Sender>sender</carrierInterface:Sender> <carrierInterface:Receiver>receiver</carrierInterface:Receiver> <carrierInterface:RecordCount>1</carrierInterface:RecordCount> <carrierInterface:SequenceID>143</carrierInterface:SequenceID> <carrierInterface:Device> <carrierInterface:ID>123456789</carrierInterface:ICCID> <carrierInterface:Make>make</carrierInterface:Make> <carrierInterface:Model>model</carrierInterface:Model> <carrierInterface:ModelYear>2017</carrierInterface:ModelYear> <carrierInterface:DeviceWiFiType>True</carrierInterface:DeviceWiFiType> <carrierInterface:PairingState>Initial</carrierInterface:PairingState> </carrierInterface:Device> </carrierInterface:CarrierInterface> 

有没有人知道一个简单的方法来定制这些命名空间前缀,而不必写一个macros? 另外,有没有人知道为什么Excel删除给出的CarrierInterface的命名空间定义在下面的行中显示的URL?

期望的输出

 <carrierInterface:CarrierInterface xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:carrierInterface="http:/exampleurl.com/" xsi:schemaLocation="http:/exampleurl.com/"> 

实际产出

 <ns1:CarrierInterface xmlns:ns1="http:/exampleurl.com/"> 

名称空间前缀名称本身是不重要的; 只有通过它们绑定到一个名称空间值,他们才能派生出意义。

没有符合要求的XML处理器会关心正在使用的特定命名空间前缀,您也不应该 – 只是命名空间的值。