2013-02-28 4 views
0

I файлы процесс XML с помощью SAX:XML. 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

Как предполагается, должны использоваться значения по умолчанию для атрибутов. Если вам нужно различать два случая (по умолчанию не указано явно, но со значением по умолчанию), вам придется удалить значение по умолчанию из схемы и применить его на уровне кода.

Смежные вопросы