2013-02-28 40 views
0

我處理XML文件:XML。 SAX。使用默認值屬性使用SAX

XMLReader reader = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser"); 
reader.setFeature("http://xml.org/sax/features/validation", Boolean.TRUE); 
reader.setFeature("http://apache.org/xml/features/validation/schema", Boolean.TRUE); 

我打開一個語法(XSD),並將其設置爲讀者。

reader.setProperty("http://apache.org/xml/properties/internal/grammar-pool", grammarPool); 

語法包含某些元素的某些可選屬性的defaultValue。 具有默認值的那些屬性將從此處理程序傳遞給startElement(ContentHandler#startElement))方法,即使它們不在源XML中。 可以以某種方式驗證該屬性是否存在於XML中?

回答

3

這就是屬性的默認值應該如何工作。如果您需要區分這兩種情況(默認值與顯式指定但默認值),則必須從模式中刪除默認值,然後在代碼級應用它。