基本上我想創建一個XSD的狀態轉換圖表示。這不是一個簡單的狀態圖。它應該反映合成器(全部,選擇,序列),最小和最大出現次數以及派生(限制,擴展)。 XSD遍歷器必須能夠做的事情是在每次將XML標記提供給它時更新其在XSD的狀態圖表示中的位置。它應該在標籤附近回滾它的位置。它應該能夠確定是否向其提供XML標記會使XML無效,即傳送程序無法找到給定XML標記的路徑。XSD Walker - 遍歷一系列XML標記開頭和結尾作爲輸入的XSD
我一直在使用XSOM,它是仿函數訪問器體系結構,但我無法實現使用XSOM的合成器,事件和派生。
你們中的任何一個人都知道任何已經這樣做的圖書館?
或者有關如何構建這種狀態轉換圖的任何想法?
或者更好的是,你們提供了鏈接到XML驗證器的代碼?這基本上就是XML驗證器在針對XSD權限驗證XML時執行的操作。
這就是我想要的。如果我只考慮給定元素的可能子元素,創建狀態圖非常簡單。然而,我很難爲序列,選擇,最小 - 最大值事件,擴展/重新創建狀態轉換邏輯。我正在尋求一種方法來實現這些狀態轉換邏輯。 – Ram
你知道如何爲正則表達式構建狀態機嗎?應該有足夠的資源,例如[此視頻](http://www.youtube.com/watch?v=GwsU2LPs85U)。你的序列'ab',選擇'a | b',min-max'a {3,5}'也都存在於正則表達式中,只有你有字符而不是標籤,所以你應該可以使用相同的方法和原則。儘管擴展和限制可能需要特殊處理。 – amoebe