SAX を使用して XML ファイルを処理します。
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 が含まれています。デフォルト値を持つこれらの属性は、ソース XML に存在しない場合でも、この値とともにハンドラーから startElement(ContentHandler#startElement)) メソッドに渡されます。属性が XML に存在するかどうかを何らかの方法で確認できますか?