diff --git a/public/instance/proxy/opac-de-23/.htaccess b/public/instance/proxy/opac-de-23/record/.htaccess similarity index 52% rename from public/instance/proxy/opac-de-23/.htaccess rename to public/instance/proxy/opac-de-23/record/.htaccess index 62da46e6b380b1247148194cc768690229ec4176..600be62ba45d6644eb0eeeac2537396665f5abd3 100644 --- a/public/instance/proxy/opac-de-23/.htaccess +++ b/public/instance/proxy/opac-de-23/record/.htaccess @@ -1,4 +1,4 @@ RewriteEngine On -RewriteBase /instance/proxy/opac-de-23/ +RewriteBase /instance/proxy/opac-de-23/record -RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/index.php/$1 [END] +RewriteRule ^([0-9]+[0-9X](\.[a-z]+)?)$ /instance/proxy/opac-de-23/record/index.php/$1 [END] diff --git a/public/instance/proxy/opac-de-23/index.php b/public/instance/proxy/opac-de-23/record/index.php similarity index 90% rename from public/instance/proxy/opac-de-23/index.php rename to public/instance/proxy/opac-de-23/record/index.php index f3ad45bd07666dfb7ba059cae6f0bcad19f26355..08a74b06b22de93918ef0069e8c7614b2cd1faef 100644 --- a/public/instance/proxy/opac-de-23/index.php +++ b/public/instance/proxy/opac-de-23/record/index.php @@ -1,6 +1,6 @@ <?php -require_once __DIR__ . '/../../../../vendor/autoload.php'; +require_once __DIR__ . '/../../../../../vendor/autoload.php'; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -13,9 +13,9 @@ use HAB\Pica\Reader\PicaNormReader; use HAB\Pica\Writer\PicaXmlWriter; define('PSI_TEMPLATE', 'http://opac.lbs-braunschweig.gbv.de/DB=2/PLAIN=Y/CHARSET=UTF8/PLAINTTLCHARSET=UTF8/PPN?PPN=%s'); -define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.xml'); -define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.mods'); -define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/%s.rdf'); +define('PICA_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.xml'); +define('MODS_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.mods'); +define('RDF_TEMPLATE', 'http://uri.hab.de/instance/proxy/opac-de-23/record/%s.rdf'); function terminate (Request $request, Response $response) { $response->prepare($request); @@ -85,11 +85,11 @@ switch ($format) { if ($type[0] === 'T') { $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html')); } else { - $templateUri = __DIR__ . '/../../../../src/xslt/pica/mods.xsl'; + $templateUri = __DIR__ . '/../../../../../src/xslt/pica/mods.xsl'; $sourceUri = sprintf(PICA_TEMPLATE, $ident); $content = transform($sourceUri, $templateUri); if ($content) { - $response = new Response($content, 200, array('Content-Type' => 'application/mods+xml')); + $response = new Response($content, 200, array('Content-Type' => 'application/xml')); break; } } @@ -100,7 +100,7 @@ switch ($format) { if ($type[0] === 'T') { $response = new Response('<h1>406 Not Acceptable</h1>', 406, array('Content-Type' => 'text/html')); } else { - $templateUri = __DIR__ . '/../../../../src/xslt/mods2dc.xsl'; + $templateUri = __DIR__ . '/../../../../../src/xslt/mods2dc.xsl'; $sourceUri = sprintf(MODS_TEMPLATE, $ident); $content = transform($sourceUri, $templateUri); if ($content) { @@ -113,7 +113,7 @@ switch ($format) { case 'rdf': $type = (string)$record->getFirstMatchingField('002@/00')->getNthSubfield(0, '0'); if ($type[0] === 'T') { - $templateUri = __DIR__ . '/../../../../src/xslt/pica/auth.xsl'; + $templateUri = __DIR__ . '/../../../../../src/xslt/pica/auth.xsl'; $sourceUri = sprintf(PICA_TEMPLATE, $ident); $content = transform($sourceUri, $templateUri); if ($content) { @@ -121,7 +121,7 @@ switch ($format) { break; } } else { - $templateUri = __DIR__ . '/../../../../src/xslt/mods2rdf.xsl'; + $templateUri = __DIR__ . '/../../../../../src/xslt/mods2rdf.xsl'; $sourceUri = sprintf(MODS_TEMPLATE, $ident); $content = transform($sourceUri, $templateUri); if ($content) { diff --git a/src/xslt/mods2rdf.xsl b/src/xslt/mods2rdf.xsl index 15b58b0052ebe9736138516cfefb6855006fae04..2d743cbd352f9472a3e35e70b3126865de620870 100644 --- a/src/xslt/mods2rdf.xsl +++ b/src/xslt/mods2rdf.xsl @@ -9,7 +9,7 @@ xmlns:mods="http://www.loc.gov/mods/v3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable> + <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable> <xsl:template match="mods:mods"> <rdf:RDF> diff --git a/src/xslt/pica/auth.xsl b/src/xslt/pica/auth.xsl index f641ef4522426a03e0942ee9356413524b8f391d..47180eb7231bd37c4d6e17ff3172fb8e20211d42 100644 --- a/src/xslt/pica/auth.xsl +++ b/src/xslt/pica/auth.xsl @@ -11,7 +11,7 @@ <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tp')]"> <rdf:RDF> - <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> + <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> <xsl:apply-templates/> <xsl:call-template name="foaf:Person"> <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/> @@ -22,7 +22,7 @@ <xsl:template match="pica:record[starts-with(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 'Tb')]"> <rdf:RDF> - <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> + <foaf:Person rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> <xsl:apply-templates/> <xsl:call-template name="foaf:Organization"> <xsl:with-param name="nameField" select="pica:datafield[@tag = '028A']"/> @@ -34,7 +34,7 @@ <xsl:template match="pica:record"> <xsl:variable name="recordType" select="substring(pica:datafield[@tag = '002@']/pica:subfield[@code = '0'], 2, 1)"/> <rdf:RDF> - <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> + <skos:Concept rdf:about="http://uri.hab.de/instance/proxy/opac-de-23/record/{pica:datafield[@tag = '003@']/pica:subfield[@code = '0']}"> <xsl:apply-templates/> </skos:Concept> </rdf:RDF> diff --git a/src/xslt/pica/mods.xsl b/src/xslt/pica/mods.xsl index c114519080ca0addc9734a923115e57c999d8e09..617df0b72f9669c57d6414af5b095f67d20e2b1f 100644 --- a/src/xslt/pica/mods.xsl +++ b/src/xslt/pica/mods.xsl @@ -7,7 +7,7 @@ xmlns:skos="http://www.w3.org/2004/02/skos/core#" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/</xsl:variable> + <xsl:variable name="proxyBaseUrl">http://uri.hab.de/instance/proxy/opac-de-23/record/</xsl:variable> <xsl:template match="pica:record"> diff --git a/src/xslt/prune.xsl b/src/xslt/prune.xsl new file mode 100644 index 0000000000000000000000000000000000000000..27c82937db313732bd98165f11159f4a34506eec --- /dev/null +++ b/src/xslt/prune.xsl @@ -0,0 +1,8 @@ +<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + <xsl:template match="node() | @*"> + <xsl:copy> + <xsl:apply-templates select="node() | @*"/> + </xsl:copy> + </xsl:template> + <xsl:template match="*[normalize-space() = '']"/> +</xsl:transform>