PB138cv/Cv9
Z FI WIKI
Obsah
XML Catalogs
Katologové soubory umožňují snazší přenositelnost XML dokumentů při zachování pohodlí pro autory. Pokud někomu posíláme XML dokumenty, měly by použité systémové identifikátory (které například odkazují na soubor s DTD) obsahovat absolutní URL adresu, která je dosažitelná odkudkoliv. Dokumenty jsou pak snadno přenositelné, protože všechny další soubory potřebné pro jejich validaci apod. jsou dostupné na síti.
Problém nastává v situacích, kdy nejsme připojeni k síti. Zdroj označený systémovým identifikátorem je pak nedostupný.
Elegantním řešením tohoto problému jsou katalogové soubory, které umožňují přemapovat veřejné i systémové identifikátory na jejich lokálně dostupnou kopii.
- Norman Walsh Výhody použití katalogů
- Návod pro použití katalogů
- Specifikace
- Xerces + Catalogs
- XML Catalogs with JAXP
Ukázka
mesto.xml
<?xml version="1.0" encoding="ISO-8859-2"?> <!DOCTYPE mesto SYSTEM "http://www.fi.muni.cz/~xpavlov/lidi2.dtd"> <mesto> <author> <firstname>Jan</firstname> <surname>Pavlovič</surname> </author> <clovek> </clovek> </mesto>
catalog.xml
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> <system systemId="http://www.fi.muni.cz/~xpavlov/lidi2.dtd" uri="file:///home/xpavlov/public_html/pb138/lidi2.dtd"/> </catalog>
Použití Katalogu v programu xmllint/xsltproc
- Stačí nastavit proměnou
XML_CATALOG_FILES=/home/xpavlov/pb138/catalog.xml
Použití Katalogu v programu xalan
- Nastavíme soubor
CatalogManager.properties
CatalogManager.properties
verbosity=1 relative-catalogs=yes # Always use semicolons in this list catalogs=catalog.xml prefer=public static-catalog=yes allow-oasis-xml-catalog-pi=yes catalog-class-name=org.apache.xml.resolver.Resolver
- Přídáme do
CLASSPATH
adresář se souboremCatalogManager.properties
a balíkresolver.jar
. - Spustíme transformaci:
java -classpath .:resolver.jar:classes cz.muni.fi.pb138.demo.catalog.XSLTWithCatalogDemo demo.xml style.xsl demo-ctlg-out.xml
- Zdrojové kody