2011-01-13 35 views
2

我有2個不同的xsd爲相同的請求。一個是最新版本,而另一個是舊版本。我想比較2個xsd的。比較2個不同的xsd

我用Liquid XML工具來生成XML,但生成的xml告訴我這2個xsds是完全不同的,我認爲這是不可能的。無論我的方法是錯誤的還是xsds真的不同。

你們能否建議我比較2個xsds的最佳做法?

回答

0

Oxygen有一個XML比較工具。

另外,你可以漂亮地打印兩個XSD,並使用diff或TortoiseMerge或類似的東西進行比較。

+0

元素的定義可以在頂部或底部。定義元素的順序並不重要,所以只是比較不會有幫助 –

1

QTAssistant具有支持XSD的比較功能,它是XML模式重構(XSR)模塊的一部分;作爲支持XSD的應用程序,有時會讓那些習慣於基於文件的比較的人感到驚訝,因爲它比較了文本或XML感知。

QTAssistant實際上並不比較XSD文件;相反,它會比較「編譯」的XSD文件集。因此,如果有人決定簡單地將兩個文件中的XSD拆分,並使用< xsd:include />將它們鏈接在一起,然後比較這兩個文件,結果會返回爲「相同」。一個很好的例子是ACORD標準,它改變了它發佈XSD的方式。下面是一個顯示組織爲集QTAssistant 2.21 2.26與釋放的例子...

ACORD Collections

...在發行2.21文件之間的關係(使用< XSD:包括/ S>)。

File relationships in ACORD 2.21

又如:如果一個或的minOccurs的maxOccurs =」 1」 屬性版本之間去除,這種差異將不會被標記,因爲這些1是默認值反正...

其他有趣的功能是由diff報告提供的粒度...

Diff report

除了有可以在每個XSD分量的電平的結果,它也分成兩:一個結果,狀態,爲是否模式成分實質上直接改變(下面LastRaceDate物「替換成」與LastRaceDate和LastDatePartialDate之間的選擇)...

Directly modified XSD component

...和另一個,擴展狀態,即考慮基於依賴關係的影響分析(在屬性下面從強制變爲可選)。

Dependency modified

報告可以被導出,與其他工具的進一步融合。