Portál AbcLinuxu, 15. května 2025 11:29

Dotaz: XM s Xinclude v jar souboru načtení

31.7.2009 18:59 ZAH | skóre: 43 | blog: ZAH
XM s Xinclude v jar souboru načtení
Přečteno: 96×
Odpovědět | Admin
Mám v jar soubor XML dokument s x Include.Všechny vkládané soubory jsou ve stejném jar.
 < ?xml version="1.0" encoding="UTF-8"? >
...
   < xi:include href='ServerStructure_Modul_IsMaster.xml'/>
.....
Potřebuji vytvořit DOM objekt načtením souboru včetně XInclude.
    public Document readFromFile() {
        try {
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            dbf.setAttribute("http://apache.org/xml/features/xinclude", true); //$NON-NLS-1$
            dbf.setXIncludeAware(true);
            dbf.setNamespaceAware(true);
            DocumentBuilder builder = dbf.newDocumentBuilder();
            return builder.parse(this.getClass().getResourceAsStream(fileName));
        } catch (Exception ex) {
            Logger.getInstance().addLogEvent(new LogEvent(ex));
            return null;
        }
    }
Metoda skončí s chybou
An 'include' failed, and no 'fallback' element was found.
org.xml.sax.SAXParseException: An 'include' failed, and no 'fallback' element was found.
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
	at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
Jak na to dál. Řešil to někdo? Mohlo by pomoci uvést SystemId String do volání builder.parse(this.getClass().getResourceAsStream(fileName), systemId);?.

Díky za každé nakopnutí.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.8.2009 10:01 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: XM s Xinclude v jar souboru načtení
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud předáte parseru rovnou stream, nemá odkud zjistit, k čemu se vztahují relativní URL. Takže můžete použít buď vámi zmíněný postup, nebo jednoduše místo metody getResourceAsStream() použijte getResource(), čímž získáte URL a to můžete parseru předat také (po převedení na String).
1.8.2009 21:46 ZAH | skóre: 43 | blog: ZAH
Rozbalit Rozbalit vše Re: XM s Xinclude v jar souboru načtení
Dík funguje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.