2017-02-09 69 views
1

我有以下內容的XML文件驗證XML:從另一個XML來對其他XML目錄值

<example> 
    <firstNode> 
    <someInfo>Hello</someInfo> 
    </firstNode> 
    <secondNode> 
    <myFlagColors> 
     <using>RED</using> 
     <using>WHITE</using> 
     <using>BLUE</using> 
    </myFlagColors> 
    </secondNode> 
</example> 

我需要檢查每一個節點<using>XYZ</using>有一個值(如XYZ),如這一個:

<colorCatalog> 
    <color>WHITE</color> 
    <color>BLACK</color> 
    <color>RED</color> 
    <color>GREEN</color> 
    <color>BLUE</color> 
    <color>YELLOW</color> 
    <color>PINK</color> 
    <color>ORANGE</color> 
    <color>CYAN</color> 
</colorCatalog> 

我不喜歡我用java成爲當前實現: 轉換成一個Java Bean(使用JAXB),然後使用迭代器 每個XML檢查,如果在第一個bean的價值在seco的值列表中nd對象。

我的問題:是否可以通過使用xsd文件來做到這一點?或者比純編程簡單嗎?

回答

1

XML Schema的方法

如果能結合XML文檔,那麼你可以創建一個具有2個元素之間的關係keyRef的XSD。

根據模式驗證文檔會突出顯示所有錯誤。

如果您不能輕鬆地將XML文件組合起來,那麼您可以使用xinclude(只要您的XSD解析器支持它)。例如Xerces支持它。