2012-01-20 43 views
1

我們正在開發一個跨平臺,該平臺應該提供一個Qt GUI來寫入XML文件。將會有一組可配置的XML元素/屬性,可以在Qt GUI中使用QLineEdit等進行修改。Qt使用XML模式類型的GUI輸入驗證

我們如何添加符合XML模式中定義的類型的輸入驗證?該類型都是simpleType,如:

<xs:element name="age"> 
    <xs:simpleType> 
    <xs:restriction base="xs:integer"> 
     <xs:minInclusive value="0"/> 
     <xs:maxInclusive value="100"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:element> 

短期重新實現輸入驗證所有XML模式類型,是否有其他可行的方法。我曾想過爲當前可見的輸入字段及其輸入創建XML Schema和XML文檔,並使用QXmlSchema對其進行驗證,然後顯示驗證錯誤消息。但是,這似乎過於複雜,可能會很慢。

回答

1

Here是XML模式驗證程序的一個很好的例子。在示例中,模式使用QPushButton進行驗證,但是一旦完成編輯或者文本發生更改,您就可以執行此操作。

+0

也許你可以給這篇文章的內容的簡短摘要?我知道它將不可能像Qt提供的那樣徹底地提供解釋,但我認爲SO旨在儘可能地自成體系(即對外部來源的依賴性很小)。 –

+0

那麼在文章中,XML輸入將根據從磁盤加載的預定義模式進行驗證。據我所知,你有多個模式需要驗證。所以使用這種方法你可以迭代它們。如果你有很多人,這會變得很難看。 – Neox

+0

@Neox:我也看到了示例應用程序,但它與我的想法基本相同,即即時創建XML文檔和模式,然後進行驗證。我有一個可變的用戶可配置數量的字段,基於'simpleType'就像我需要驗證的年齡。與其驗證所有內容,我想找到一種單獨驗證每個字段的方法,以便能夠向用戶提供即時反饋。 – kossmoboleat