2012-08-08 46 views
1

我想提前考慮並在XMLSchema文檔中包含版本控制。看來w3c中的建議方法是保持命名空間相同並使用version屬性。如何在Java驗證中支持同一模式的多個版本?

到目前爲止是如此明智。

但是,我不需要那麼能夠切換架構以用於基於指定版本的驗證嗎? Java 6 XML模式驗證功能是否包含此功能?

回答

1

你是對的,許多人建議保持命名空間相同。我不懷疑這種方法適用於很多人(包括大多數建議者),但我從來沒有見過一個非常有說服力的觀點認爲這是唯一合理或可行的做法。 (在假設某個特定名稱空間只能有一個模式的系統中,更改命名空間可能是您能夠對詞彙進行版本升級的唯一方法。)

您也是對的不同版本的命名空間常量可能意味着你想維護多個模式。我最後一次查看它的文檔時,Xerces J似乎很容易地做到了你所需要的:一個驗證呼叫基本上涉及說「在這裏,取文檔和這個模式,並驗證」。

有些人通過說每個新版本都會擴展一組有效文檔來避免需要多個模式,因此每個版本的模式都可以用來創建符合早期版本模式的文檔。 (進一步改進:小數點版本必須以這種方式向後兼容,並且只有主要版本可以向後不兼容 - 如果它們是,則它們必須使用新的命名空間。)