2012-09-19 24 views
0

我們有數百個XML文件,沒有提前定義XML模式(XSD)。我能夠用一個工具(IntelliJ Idea)從其中一個文件生成XSD,但它不夠聰明,無法識別哪些元素和屬性是可選的,哪些是必需的。來自動如何自動識別XML實例中的可選/必需屬性/元素?

的一種方法是使用下列試探法來扭轉從多個XML文件工程師XSD:

的屬性/元素是可選use="optional"/minOccurs=0)如果在某些情況下發生,並且在其他沒有。否則,需要use="required"/minOccurs=1)。

顯然,如果這個XML具有足夠的代表性,那麼試探法也適用於單個XML文件。

<list> 
    <carrier name="BA" flightNumber="213" /> 
    <carrier name="CY" /> 
    </list> 

你知道的任何工具生成XSD和識別的屬性/元素是否可選:

例如,​​會給出下面的輸入被視爲可選?

回答

1

嘗試QTAssistant(我與它相關聯)。根據工具標籤

enter image description here

有來自個XML的XSD命令。

enter image description here

你的XML文件都必須是一個文件夾中。從對話框中,您必須選擇要在生成XSD時考慮的內容。 XSD將在相同的文件夾中生成併爲您加載。

但是,我還沒有嘗試過數百個XML文件。如果遇到任何問題,請通過我們網站上的支持地址告訴我。下載免費試用,但需要註冊。

+0

+1做這項工作。你能解釋一下其他類似工具不能做的其他事情嗎? – dzieciou

+0

不是真的......您使用的QTAssistant版本中的推理引擎幾乎是一個輕微修改過的庫存.NET XSD推理引擎;我所知道的其他人與我比較和分享的是,它可以同時處理多個XML文件。除此之外,我不太瞭解其他工具的用途。 –