====== Howto: Wiederverwendbare Zeichenfolgen(Entities) in *.xml-Dateien ====== ===== Einführungsbeispiel ===== Wenn mehrere Indexe in der Datei ''SearchConfiguration.xml'' eingebunden und in einem Ordner gespeichert sind, z.B. ''C:/Tomcat 5.0/webapps/regain/WEB-INF'' dann ist es sinnvoll, am Anfang der ''SearchConfiguration.xml'' unter der Zeile ''<!ENTITY lt ...>'' eine Zeile <code xml> <!ENTITY indexPfad "C:\Tomcat 5.0\webapps\regain\WEB-INF"> </code> einzufügen. Dann können Sie an Stelle <code xml> <dir>C:/Tomcat 5.0/webapps/regain/WEB-INF/MySearchindex</dir> </code> einfach <code xml> <dir>&indexPfad;/MySearchindex</dir> </code> schreiben. Diese Schreibweise macht den Quelltext der ''SearchConfiguration.xml'' übersichtlicher und die Änderungen von Pfadangaben für die Indexe bei der Migration von regain, z.B. aus einer Entwicklungs- in die produktive Umgebung können dann durch Änderung des Werts ''indexPfad'' an einer Stelle gemacht werden. Genauso können Sie bei der Definition von ''<prefix>''-Werten in ''<whitelist>'' und ''<blacklist>'' in der ''CrawlerConfiguration.xml'' vorgehen. ===== Entities als Parameter in XML-Elementen einsetzen ===== Wenn man solche Entities in der Datei ''CrawlerConfiguration.xml'' definiert <code xml> <!ENTITY prefix1 "file://C:/wwwroot/"> <!ENTITY replacement1 "http://meinServer.de/"> </code> dann ist auch diese platz- und zeitsparende Schreibweise bei der Definition von ''rewriteRules'' zulässig: <code xml> <rewriteRules> <rule prefix='&prefix1;' replacement='&replacement1;'/> </rewriteRules> </code> ===== komplette XML-Elemente als Entities ===== Solche Entity-Definition <code xml> <!ENTITY rewriteRules1 "<rewriteRules><rule prefix='file://C:/wwwroot/' replacement='&replacement1;'/></rewriteRules>"> </code> ist auch zulässig. Sie ist sinnvoll, wenn die ''rewriteRules''-Werte für mehrere Suchindexe identisch sind. Dann kann man nach der Definition der ''rewriteRules1''-Entity alle Abschnitte <code xml> <rewriteRules> <rule prefix='file://C:/wwwroot/' replacement='http://meinServer.de/' /> </rewriteRules> </code> durch ein Entity-Element <code xml> &rewriteRules1; </code> ersetzen ;-) ===== verschachtelte Entities ===== Das Beispiel ist selbsterklärend, nehme ich an <code xml> <!ENTITY rewriteRules1 "<rewriteRules><rule prefix='&prefix1;' replacement='&replacement1;'/></rewriteRules>"> </code> Also man darf Entities in Entities verwenden. ===== Siehe auch ===== * [[:de:config]]