2016-09-16 70 views
0

我有一個相當獨特的問題。我有一個工作工具,允許用戶創建一個XML文件。除了說他們使用GUI和JTable來填充要放入XML文件的標記之外,我不會深入討論細節,這些都是通過DOM解析完成的。生成的XML具有特定的格式。每個標籤必須位於正確的位置,並且XML必須與架構100%匹配,否則在以後的測試中將失敗。如何使特定的標題元素出現在Java XML中

我有一個奇怪的錯誤報告,使用此工具生成的文件由於XML的標題區域而無法正確匹配標準。 (不知道你叫什麼,我不認爲它是命名空間)。總之,這裏是我的工具如何生成頂端標題:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caie.011.011.01> 

顯然,預期的結果是這樣的:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:caie.011.011.01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

我不知道目的是具有URL出現在W3的什麼網站,但顯然它是在處理中需要的。下面是我的XML代碼的一般結構的外觀:

try{ 

     DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
     Document doc = docBuilder.newDocument(); 
     doc.setXmlStandalone(true); 

     Element rootElement = doc.createElementNS("urn:iso:std:iso:20022:tech:xsd:caie.011.011.01", "Document"); 
     doc.appendChild(rootElement); 

     Element BkToCstmrDbtCdtNtfctn = doc.createElement("BkToCstmrDbtCdtNtfctn"); 
     rootElement.appendChild(BkToCstmrDbtCdtNtfctn); 

     Element GrpHdr = doc.createElement("GrpHdr"); 
     BkToCstmrDbtCdtNtfctn.appendChild(GrpHdr); 

回答

1

添加 「的xmlns:XSI」 爲屬性rootElement的像

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder docBuilder = docFactory.newDocumentBuilder(); 
     Document doc = docBuilder.newDocument(); 
     Element rootElement = doc.createElementNS("urn:iso:std:iso:20022:tech:xsd:caie.011.011.01", "Document"); 
     rootElement.setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
     doc.appendChild(rootElement); 
+0

謝謝!我認爲這很簡單,因爲我只是無法在線找到解決方案。 – jesric1029

相關問題