]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0727.function.xml_pretty_print.sql
LP1894131 Sticky catalog holdings org select
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0727.function.xml_pretty_print.sql
1 -- Evergreen DB patch 0727.function.xml_pretty_print.sql
2 --
3 -- A simple pretty printer for XML.
4 -- Particularly useful for debugging the biblio.record_entry.marc field.
5 --
6 BEGIN;
7
8 -- check whether patch can be applied
9 SELECT evergreen.upgrade_deps_block_check('0727', :eg_version);
10
11 CREATE OR REPLACE FUNCTION evergreen.xml_pretty_print(input XML) 
12     RETURNS XML
13     LANGUAGE SQL AS
14 $func$
15 SELECT xslt_process($1::text,
16 $$<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
17     version="1.0">
18    <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
19    <xsl:strip-space elements="*"/>
20    <xsl:template match="@*|node()">
21      <xsl:copy>
22        <xsl:apply-templates select="@*|node()"/>
23      </xsl:copy>
24    </xsl:template>
25  </xsl:stylesheet>
26 $$::text)::XML
27 $func$;
28
29 COMMENT ON FUNCTION evergreen.xml_pretty_print(input XML) IS
30 'Simple pretty printer for XML, as written by Andrew Dunstan at http://goo.gl/zBHIk';
31
32 COMMIT;