2016-07-19 24 views
0

私は、Excel 2013を使用して、スプレッドシートのデータをXMLマップを使用してXML形式に変換しています。変換はうまくいきますが、Excelでは、下のコードに示すように、出力ファイルのすべてのXML名前空間接頭辞を "ns1"にデフォルト設定しています。Excel to XML名前空間プレフィックスのカスタマイズ

XML

<?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> 

は、マクロを記述することなく、これらの名前空間接頭辞をカスタマイズするための簡単な方法を知って誰ですか?また、次の行に示すCarrierInterfaceの名前空間定義に指定されたURLをExcelがドロップする理由を知っていますか?

所望の出力

<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/"> 

答えて

2

名前空間接頭辞の名前自体は重要ではありません。名前空間の値にバインドすることによってのみ意味を引き出すことができます。

準拠していないXMLプロセッサは、使用されている特定の名前空間接頭辞を気にしません。どちらも重要です。