• [^] # Re: une idée comme ça

    Posté par . En réponse au message XMLConfiguration et validation DTD.. Évalué à 1.

    Oui, j'y avais pensé, sauf que l'URL du DTD ne renvoie pas un DTD valide !!
    Et de plus, je n'ai pas besoin de DTD pour valider ce XML, je veux juste le parser le plus simplement possible.
    Sinon, mettre un DTD bidon en local c'est aussi une idée, mais je ne veux pas m'embêter à modifier le XML.

    Par contre, j'ai trouvé un workaround avec le DocumentBuilder.

    xml = new XMLConfiguration();
    xml.setFile(xmlOut);
    DocumentBuilder db = null;
    final class RmEntityResolver implements EntityResolver {
    public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
    byte[] buffer = null;
    buffer = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\">".getBytes();
    ByteArrayInputStream bais = new ByteArrayInputStream(buffer);
    return new InputSource(bais);
    }
    }
    db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    EntityResolver er = new RmEntityResolver();
    db.setEntityResolver(er);
    xml.setDocumentBuilder(db);
    //xml.setValidating(false);
    xml.load();


    Et du coup je n'ai plus besoin de mon setValidating(false).

    Mais cette facon de faire n'est pas la plus propre je pense...

    (quelqu'un sait comment afficher les indentations dans une balise <code> ?)