Criei um DTD para um documento XML, porem mesmo com o XML mal-formatado o processamento dele ocorre sem problemas. Nao sei se o problema eh com o meu DTD ou se eh alguma outra coisa. Parece que tem algum metodo para ativar a validacao, mas nao consegui.
O codigo do parser que teste foi
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setFeature("http://xml.org/sax/features/validation", true);
SAXParser parser = factory.newSAXParser();
InputSource source = new InputSource("modules.xml");
parser.parse(source, new MeuXML2());
O XML e a DTD tem um formato como o seguinte:
DTD:
...
<!ELEMENT modulo (descricao, submodulo+)>
<!ELEMENT submodulo EMPTY>
...
<!ATTLIST modulo
nome CDATA #REQUIRED
id ID #REQUIRED
visivel (1|0) "1"
>
<!-- submodulo -->
<!ATTLIST submodulo
nome CDATA #REQUIRED
id ID #REQUIRED
visivel (1|0) "1"
acaopadrao NMTOKEN #IMPLIED
>
XML:
<modulo nome="Contatos" id="contato" visivel="1">
<submodulo nome="Pessoa Física" id="contato_pessoa_fisica" visivel="1"/>
<submodulo nome="Pessoa Jurídica" id="contato_empresa" visivel="1" acaopadrao="editar"/>
</modulo>
Neste caso, mesmo se tiro o atributo “nome” ou “id” , o XML eh processado sem apresentar erro algum. O que esta errado?
Rafael

