| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
- exclude-result-prefixes="xs xsi p5dkp"
- version="2.0">
-
- <xsl:output indent="yes"/>
- <xsl:strip-space elements="*"/>
-
- <xsl:param name="basedir"/>
- <xsl:param name="p5dkp.ditafiles.signature.fix.xsl" required="yes"/>
-
- <!-- CONCEPT
-
- naprawa plikow dita po sygnaturze np
- wartosci href klucza
- nazwa klucza (stara)
-
- cel href (stary)
- (lub bez warunku celku starego)
- cel href (nowy)
- analogicznie
- zmiana nazwy klucza z nazwy A na nazwe B
- warunki opcjonalne co wskazywał klucz
- w jakiej był relacji w pliku dita
-
- optymalnie jest wygnerowac xsla i nim pojechac
- -->
-
- <xsl:include href="p5dkp.ditafiles.func.isditafile.xsl"/>
-
-
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.match.xsl" match="p5dkp.ditafiles.signature.fix.match.xml" xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd">
- <!-- generowanie tamplate -->
- <xsl:element name="xsl:stylesheet">
- <xsl:namespace name="xsl" select="'http://www.w3.org/1999/XSL/Transform'"/>
- <xsl:namespace name="xs" select="'http://www.w3.org/2001/XMLSchema'"/>
- <xsl:namespace name="p5dkp" select="'http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd'"/>
- <xsl:attribute name="exclude-result-prefixes">xs</xsl:attribute>
- <xsl:attribute name="version">2.0</xsl:attribute>
- <xsl:element name="xsl:output">
- <xsl:attribute name="indent">yes</xsl:attribute>
- </xsl:element>
- <xsl:element name="xsl:strip-space">
- <xsl:attribute name="elements">*</xsl:attribute>
- </xsl:element>
-
- <xsl:element name="xsl:include">
- <xsl:attribute name="href" select="$p5dkp.ditafiles.signature.fix.xsl"/>
- </xsl:element>
-
- <!--<xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <xsl:attribute name="match">*[not(parent::*)]</xsl:attribute>
- <p5dkp:ditafiles.signature.fix.generated-template.found>
- <xsl:element name="xsl:apply-templates">
- <xsl:attribute name="mode">#current</xsl:attribute>
- </xsl:element>
- </p5dkp:ditafiles.signature.fix.generated-template.found>
- </xsl:element>-->
- <xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <xsl:attribute name="match">*</xsl:attribute>
- <xsl:element name="xsl:apply-templates">
- <xsl:attribute name="mode">#current</xsl:attribute>
- </xsl:element>
- </xsl:element>
- <xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <xsl:attribute name="match">comment()|text()</xsl:attribute>
- <xsl:attribute name="priority">1</xsl:attribute>
- </xsl:element>
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.match" />
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.match.match" match="*" >
-
- <xsl:variable name="attrs">
- <attrs>
- <!--<xsl:choose>
- <xsl:when test="name()='p5dkp.ditafiles.signature.fix.match.descendant.3.name'">
- <attr ancestor="{parent::*/@p5dkp.ditafiles.signature.fix.match.element.name}"
- position="2"
- />
- </xsl:when>
- </xsl:choose>-->
-
- <xsl:variable name="current" select="."/>
- <xsl:choose>
- <xsl:when test="string-length(@p5dkp.ditafiles.signature.fix.match.element.value) > 0">
- <attr text="{@p5dkp.ditafiles.signature.fix.match.element.value}"/>
- </xsl:when>
- </xsl:choose>
- <xsl:for-each select="1 to count(@*)">
- <xsl:choose>
- <xsl:when test="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.name')]">
- <attr name="{$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.name')]}">
- <xsl:choose>
- <xsl:when test="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.matches')] and $current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.value')]">
- <xsl:attribute name="matches" select="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.matches')]"/>
- <xsl:attribute name="value" select="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.value')]"/>
- </xsl:when>
- <xsl:when test="string-length($current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.matches')]/text()) > 0">
- <xsl:attribute name="matches" select="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.matches')]"/>
- </xsl:when>
- <xsl:when test="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.value')]">
- <xsl:attribute name="value" select="$current/@*[ local-name() = concat('p5dkp.ditafiles.signature.fix.match.element.attribute.',current(),'.value')]"/>
- </xsl:when>
- </xsl:choose>
- </attr>
- </xsl:when>
- <xsl:otherwise>
- <not pos="{position()}"> </not>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </attrs>
- </xsl:variable>
-
- <xsl:attribute name="match">
- <xsl:value-of select="@p5dkp.ditafiles.signature.fix.match.element.name"/>
-
- <xsl:choose>
- <xsl:when test="$attrs//attr">
-
- <xsl:text>[ </xsl:text>
- <xsl:for-each select="$attrs//attr">
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.match.match" select="."/>
- <xsl:if test="not(position() = last())">
- <xsl:text> and </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text> ]</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:attribute>
- <!--<DEBUG>
- <xsl:copy-of select="$attrs"/>
- </DEBUG>-->
- </xsl:template>
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.match" match="p5dkp.ditafiles.signature.fix.match.element.name" xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd">
- <xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <xsl:attribute name="priority">5</xsl:attribute>
- <!--<xsl:attribute name="match" select="text()"/>-->
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.match.match" select="." xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd"/>
- <xsl:element name="xsl:copy">
- <xsl:attribute name="copy-namespaces">no</xsl:attribute>
- <xsl:attribute name="p5dkp:{name()}" select="@p5dkp.ditafiles.signature.fix.match.element.name"/>
- <xsl:attribute name="p5dkp:ditafiles.signature.fix.name" select="name()"/>
-
- <xsl:element name="xsl:message">
- <xsl:text>#143 matched for signatures</xsl:text>
- </xsl:element>
- <xsl:element name="xsl:apply-templates">
- <xsl:attribute name="mode">#current</xsl:attribute>
- <xsl:element name="xsl:with-param">
- <xsl:attribute name="name">p5dkp:ditafiles.signature.fix.match</xsl:attribute>
- <xsl:value-of select="@p5dkp.ditafiles.signature.fix.match.element.name"/>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- <xsl:apply-templates mode="#current"/>
- </xsl:template>
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.match" match="p5dkp.ditafiles.signature.fix.match.descendant.3.name" xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd">
- <xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <!--<xsl:attribute name="match" select="text()"/>-->
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.match.match" select="."/>
- <xsl:element name="xsl:param">
- <xsl:attribute name="name">p5dkp:ditafiles.signature.fix.match</xsl:attribute>
- </xsl:element>
-
- <xsl:element name="xsl:choose">
- <xsl:element name="xsl:when">
- <xsl:attribute name="test">$p5dkp:ditafiles.signature.fix.match/text()</xsl:attribute>
- <xsl:element name="xsl:copy">
- <xsl:attribute name="copy-namespaces">no</xsl:attribute>
- <xsl:attribute name="p5dkp:{name()}" select="@p5dkp.ditafiles.signature.fix.match.descendant.3.name"/>
- <xsl:attribute name="p5dkp:ditafiles.signature.fix.name" select="name()"/>
- <xsl:element name="xsl:apply-templates">
- <xsl:attribute name="mode">#current</xsl:attribute>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- <xsl:element name="xsl:otherwise">
- <xsl:element name="xsl:comment">
- #187 suppressed because of not full vector searched for parent
- </xsl:element>
- </xsl:element>
- </xsl:element>
-
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="attr[string-length(@text) > 0]" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:choose>
- <xsl:when test="@text">
- <xsl:text> text()='</xsl:text><xsl:value-of select="@text"/><xsl:text>' </xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:template>
-
- <xsl:template match="attr[@value and @name and not(@matches)]" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:text>@</xsl:text><xsl:value-of select="@name"/><xsl:text>='</xsl:text><xsl:value-of select="@value"/><xsl:text>' </xsl:text>
- </xsl:template>
-
- <xsl:template match="attr[@value and @name and @matches='']" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:text>@</xsl:text><xsl:value-of select="@name"/><xsl:text>='</xsl:text><xsl:value-of select="@value"/><xsl:text>' </xsl:text>
- </xsl:template>
-
- <xsl:template match="attr[string-length(@matches) > 0 and @name and @value]" priority="8" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:text>( matches(@</xsl:text><xsl:value-of select="@name"/><xsl:text>,'</xsl:text><xsl:value-of select="@matches"/><xsl:text>') </xsl:text>
- <xsl:text>or @</xsl:text><xsl:value-of select="@name"/><xsl:text>='</xsl:text><xsl:value-of select="@value"/><xsl:text>' )</xsl:text>
- </xsl:template>
-
- <xsl:template match="attr[string-length(@matches) > 0 and @name and not(@value)]" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:text>matches(@</xsl:text><xsl:value-of select="@name"/><xsl:text>,'</xsl:text><xsl:value-of select="@matches"/><xsl:text>') </xsl:text>
- </xsl:template>
-
- <xsl:template match="attr[string-length(@matches) = 0 and not(@value) and not(@text)]" mode="p5dkp:ditafiles.signature.fix.match.match">
- <xsl:text> 1 = 1 </xsl:text>
- </xsl:template>
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.match" match="*[contains(local-name(),'p5dkp.ditafiles.signature.fix.match.element.attribute')]" xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd">
- <xsl:element name="xsl:template">
- <xsl:attribute name="mode">p5dkp:ditafiles.signature.fix.generated-template.found</xsl:attribute>
- <xsl:attribute name="match" select="text()"/>
- <xsl:element name="xsl:copy">
- <xsl:attribute name="copy-namespaces">no</xsl:attribute>
- <xsl:attribute name="p5dkp:{name()}" select="text()"/>
- <xsl:attribute name="p5dkp:ditafiles.signature.fix.name" select="name()"/>
- <xsl:attribute name="p5dkp:ditafiles.signature.fix.value" select="text()"/>
- <xsl:element name="xsl:apply-templates">
- <xsl:attribute name="mode">#current</xsl:attribute>
- </xsl:element>
- </xsl:element>
- </xsl:element>
- </xsl:template>
-
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.replace.xsl" match="p5dkp.ditafiles.signature.fix.replace.xml" xpath-default-namespace="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/dita_kosztorys_projektowy.xsd">
- <!-- generowanie tamplate -->
- <xsl:element name="xsl:stylesheet">
- <xsl:namespace name="xsl" select="'http://www.w3.org/1999/XSL/Transform'"/>
- <xsl:namespace name="xs" select="'http://www.w3.org/2001/XMLSchema'"/>
- <xsl:namespace name="p5dkp" select="'http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd'"/>
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.replace"/>
- </xsl:element>
- </xsl:template>
-
- <xsl:template match="p5dkp:ditafiles.xml" mode="p5dkp:ditafiles.signature.fix.generated-template.found.xml">
- <p5dkp:ditafiles.signature.fix.generated-template.found.xml>
- <xsl:message>#15 started p5dkp:to.dtd.xml</xsl:message>
- <xsl:for-each-group select="//p5dkp:ditafiles.file" group-by="@p5dkp:true.path">
- <xsl:copy copy-namespaces="no">
- <xsl:copy-of select="@p5dkp:true.path"/>
- <xsl:copy-of select="@xsi:noNamespaceSchemaLocation"/>
- <xsl:choose>
- <xsl:when test="not(p5dkp:ditafiles.func.isditafile(@p5dkp:true.path))">
- <xsl:message>#22 not(p5dkp:ditafiles.func.isditafile(<xsl:value-of select="@p5dkp:true.path"/>))</xsl:message>
- </xsl:when>
- <xsl:when test="doc-available(@p5dkp:true.path)" >
- <xsl:message>#22 testing <xsl:value-of select="@p5dkp:true.path"/>; </xsl:message>
- <xsl:apply-templates mode="p5dkp:ditafiles.signature.fix.generated-template.found" select="doc(@p5dkp:true.path)">
- <xsl:with-param name="p5dkp:true.path" select="@p5dkp:true.path"/>
- </xsl:apply-templates>
- </xsl:when>
- <xsl:otherwise>
- <doc-unaviable-available p5dkp:true.path="{@p5dkp:true.path}"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:copy>
- </xsl:for-each-group>
- </p5dkp:ditafiles.signature.fix.generated-template.found.xml>
- </xsl:template>
-
-
-
-
- <xsl:template mode="p5dkp:ditafiles.signature.fix.generated-template.confirm.MacroDef.xml" match="p5dkp:ditafiles.signature.fix.xsl.xml">
- <project basedir="{$basedir}" name="p5dkp.ditafiles.signature.fix.generated-template.confirm.MacroDef.xml" default="p5dkp.ditafiles.signature.fix.generated-template.confirm.MacroDef.xml"> <!-- object_merge_ant_object.merge.try.build.xml -->
- <!--<include file="{$object_modeling_new.build.xml}" as="object_modeling_new"/>
- <include file="{$object_merge_ant_object.build.xml}" as="object_merge_ant_object"/>-->
- <macrodef name="p5dkpditafilessignaturefixgeneratedtemplateconfirmMacroDefxml">
- <attribute name="srcfile"/>
- <attribute name="dstfile" />
- <sequential>
- <move verbose="yes" failonerror="false">
- <xsl:attribute name="file">@{srcfile}</xsl:attribute>
- <xsl:attribute name="tofile">@{dstfile}</xsl:attribute>
- </move>
- </sequential>
- </macrodef>
- <target name="p5dkp.ditafiles.signature.fix.generated-template.confirm.MacroDef.xml">
- <!--<p5dkptodtdconfirmMacroDef>-->
- <xsl:for-each select="p5dkp:ditafiles.file[p5dkp:ditafiles.signature.fix.confirm]">
- <p5dkpditafilessignaturefixgeneratedtemplateconfirmMacroDefxml srcfile="{p5dkp:ditafiles.signature.fix.confirm/@srcfile}" dstfile="{p5dkp:ditafiles.signature.fix.confirm/@dstfile}" />
- </xsl:for-each>
- <!--</p5dkptodtdconfirmMacroDef>-->
- </target>
- </project>
-
- </xsl:template>
-
-
-
- </xsl:stylesheet>
|