| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426 |
- <?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:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
- exclude-result-prefixes="xs system_cache__appinfo"
- version="2.0">
-
- <xsl:param name="system_cache__appinfo:escaped_html_to_xml.debug" />
-
- <xsl:output indent="yes"/>
-
-
- <!-- This is bug @2017-11-03 <OPIS><br>Zasoby są to elementy, które biorą udział w procesach. Należy je systematyzować w sposób wynikający z typów tych zasobów, pełnionych funkcji oraz ich lokalizacji, w jakich się
- znajdują. Główne kryterium systematyzacji może być wyłącznie jedno.Zasoby można grupować poprzez tworzenie zasobów opisujących grupę danych zasobów.<br><br> Zasoby uzupełniamy w następujący sposób: <br><br>
- <b>a) Należy ustalić Cechy Szczególne.</b><br> Gdybyśmy zabierali się po raz pierwszy do systematyzacji zasobów i chcielibyśmy dodać pierwszy napotkany zasób w firmie będący "Tonerem do Drukarki", to prawdopodobnie powinniśmy ustalić jego cechy szczególne, które umożliwią jego rozróżnienie pomiędzy innymi tonerami, których użycie, zamiast tych właściwych było by niewłaściwe: np. w firmie używanych jest kilka typów Tonerów do drukarki, bez ustalenia ich konkretnych typów nie jest możliwa ich właściwa rewitalizacja (nikt nie będzie wiedział jaki konkretnie toner należy kupić, bo po złożeniu zamówienia na "Toner" będzie konieczna weryfikacja przez dostawcę o jaki konkretnie nam chodzi "Toner". Taki stan rzeczy będzie mieć miejsce do czasu dokładnie nie określimy cech zasobu. Z uwagi na ograniczenie pola nazwy zasobu powinniśmy zmieścić się w 250 znakach alfanumerycznych i w tym miejscu powinniśmy udzielić informacji przynajmniej o:<br>
- 
- <b>- Oznaczenie możliwego producenta</b> - umożliwi zakup oryginału lub zamiennika produktu w oparciu o producenta, podając nazwę producenta umożliwiamy szybką orientację i zawężamy krąg poszukiwań zamiennika do nazwy producenta.<br>
- <b>- Oznaczenie nazwy produktu/modelu</b>, jeżeli posiada kilka typów różnych funkcjonalnie - umożliwi najszybszy sposób późniejszej rewitalizacji zasobu. Z reguły model produktu określany przez producenta jednoznacznie rozróżnia produkty. <br>
- - W przypadku kiedy dany zasób występuje wyłącznie w jednostce, w której wdrażany jest system jakości np. określa nazwę własną produktu, półproduktu, którym może być [987] "Obszar biura handlowego do którego mają dostęp klienci". W takim przypadku należy opisać ten obszar, jego cechy, parametry i główne funkcje.<br>
- - W przypadku Tonera, powinniśmy opisać go jako [99] <u>"Toner , gdzie XXX może wynosić : "BJC250X-2 firmy BUBBLEJET</u>".<br><br>
- 
- <b>b) Następnie należy wykonać Ustalanie Stanu Zasobu.</b><br> Jeżeli dany zasób (toner) posiada kilka stanów, np.: <br> 
- - toner jest nowy, gotowy do użycia i włożenia do drukarki; <br>
- - toner jest używany (w jakiejś konkretnej drukarce);<br>
- - toner jest zużyty (leży gdzieś na półce);
- <br>
- Należy opisać zasób z określeniem tego stanu, jakiego dotyczy opisywany zasób (dodać tyle zasobów ile stanów).
- <br><br>Ustalić zasób nadrzędny, gdzie zwykle dany zasób (toner) znajduje się w opisanym stanie. Każdy ze stanów danego zasobu zwykle ma inną lokalizację fizyczną oraz logiczną. Oznacza to, że zasób nadrzędny dla każdego ze stanów może być inny (np. zasób używany będzie przyporządkowany do konkretnego typu urządzenia (zasobu). Z kolei zużyty toner będzie przyporządkowany do szafki (opisanej konkretnym numerem zasobu),a nawet konkretnej półki (poprzez ustalenie numeru zasobu półki w tej szafie). 
- <br><br>Jeżeli nie jest opisany zasób nadrzędny, to nie możesz dodać nowego zasobu bez wcześniejszego ustalenia jego przynależności do nadrzędnego zasobu, który powinieneś dopisać do systemu, korzystając z tych samych zasad, opisanych wcześniej.
- <br><br> Może się okazać, że dany zasób może występować w jednym lub większej ilości typów zasobów nadrzędnych (np. dany rodzaj tonera pasuje do kilku rodzajów drukarek), w takim wypadku należy zdać sobie sprawę z sytuacji, że został zidentyfikowany nowy stan zasobu. W takim przypadku mamy do czynienia z dwoma bliźniaczymi zasobami, np.: <u>[100] "Toner podczas używania w drukarce YYY</u> oraz <u> [101] "Toner podczas używania w drukarce </u>
- Z powyższego wynika,że właściwy opis do zasobu <u>[99] "Toner XXX gotowy do użycia na półce</u>" będzie następujący: <u> [99] "Toner gotowy do użycia na półce, do użycia w drukarce YYY lub ZZZ</u>", bowiem to konkretnie opisuje funkcje zasobu w strukturze.
- 
- <br><br>Opisane wcześniej stany zasobów tyczących się jednego i tego samego fizycznego zasobu, jakim jest w tym przypadku "Toner <FONT COLOR="#ff00ff">typu XXX</FONT>", powinny być powiązane wspólnym oznacznikiem w strukturze zasobów, opisanym jako (5) ALIAS_ID . Jeden z tych opisanych zasobów musi być ustalony jako wiodący. Powinien nim być zasób opisany stanem, z którym mamy do czynienia pierwotnie (np. tuż po zakupieniu tonera jego stanem będzie oczekiwanie na użycie na półce). 
- <br><br>
- W przypadku chęci ograniczenia w początkowej fazie wdrażania systemu jakości dużej ilości dodawania szczegółowych zasobów, można utworzyć jeden zasób, ustalony jako wiodący, lecz zamiast tworzenia osobnych zasobów opisujących poszczególne stany jest możliwość wymienienia kilku miejsc, w których dany zasób może występować, poprzez ich ustalenie oraz wpisanie ich w ramach cechy P_ID3. Jeżeli decydujesz się na ten sposób dodawania zasobów to w P_ID powinieneś wpisać numer zasobu w jakim początkowo znajduje się ten zasób. <u>Np. jeżeli dodajemy zszywacz, to w komórce P_ID wpisujemy numer szafy na artykuły biurowe, a w P_ID3 wpisujemy numery zasobów biurek pracowników na których znajduje się zszywacz.</u> Jednak w przypadku takiego sposobu dodawania zasobów nie będzie możliwe dokładne modelowanie procesów z uwzględnieniem zasobów w konkretnych stanach (Nie będzie można stworzyć procesu opisującego pobranie Zasobu <u>[99] Toner XXX gotowy do użycia, w celu umieszczenia go w drukarce YYY</u>, co oznaczałoby wytworzenie zasobu <u>[100] Toner XXX w drukarce YYY</u><br><br>
- 
- <b>c) Zasób powinien w swoim oznaczeniu także posiadać opisane nominalne wartości ilości występowania danego zasobu:</b>Jeżeli zasób jest stanowiskiem pracy, to niewątpliwie należy określić ilość minimalną oraz maksymalną występowania danego zasobu, czyli dla zasobu <u>[321]"Sprzedawca Stacjonarny pracujący w Biurze Obsługi Klienta</u>powinniśmy opisać ile takich stanowisk ma być zatrudnionych w firmie.
- Przyjęliśmy, że taki opis odnośnie nominalnych wartości wprowadza
- się w nawiasach kwadratowych "[" oraz "]",
- zatem opis właściwy zasobu [321] będzie następujący: [321]
- "<u>Sprzedawca Stacjonarny </u><FONT COLOR="#0000ff"><u>pracujący
- w Biurze Obsługi Klienta</u></FONT><u> </u><FONT COLOR="#ff0000"><u>[minimalne
- 2 osoby na biuro, w czasie wakacji może być 1 osoba]</u></FONT>".
- <BR>Z uwagi na konieczność opisania cech szczególnych, do opisu
- nazwy tego zasobu powinniśmy modelowo kompletnie tak go opisać:
- [321] "<u>Sprzedawca Stacjonarny, </u><FONT COLOR="#ff00ff"><u>posiadający
- szkolenia produktowe, po szkole średniej, zatrudniony na umowę o
- pracę</u></FONT><u>, </u><FONT COLOR="#0000ff"><u>pracujący w
- Biurze Obsługi Klienta</u></FONT><u> </u><FONT COLOR="#ff0000"><u>[minimalne
- 2 osoby na biuro, w czasie wakacji może być 1 osoba]</u></FONT>".</P>
- <P CLASS="western">Jeżeli
- zasób to [99] "<u>Toner XXX </u><FONT COLOR="#0000ff"><u>gotowy
- do użycia na półce</u></FONT><u>, do użycia w druarce YYY lub
- drukarce ZZZ</u>", to
- powinniśmy dołączyć opis ilości jego występowania w nastepujący
- sposób [99] "Toner <FONT COLOR="#ff00ff">typu
- XXX </FONT><FONT COLOR="#0000ff">gotowy
- do użycia na półce</FONT>,
- do użycia w drukarce YYY lub drukarce ZZZ<FONT COLOR="#ff0000">[minimalnie
- 2 tonery maksymalnie 4, jeżeli mniej niż 1 pilnie rewitalizuj!]</FONT>".</P>
- 
- 
- <br>Na załączonych zdjęciach widać przykładowe struktury zasobów</OPIS>
-
- output was:
- <example>znajdują. Główne kryterium systematyzacji może być wyłącznie jedno.Zasoby można grupować poprzez tworzenie zasobów opisujących grupę danych zasobów.
 - umożliwi zakup oryginału lub zamiennika produktu w oparciu o producenta, podając nazwę producenta umożliwiamy szybką orientację i zawężamy krąg poszukiwań zamiennika do nazwy producenta., jeżeli posiada kilka typów różnych funkcjonalnie - umożliwi najszybszy sposób późniejszej rewitalizacji zasobu. Z reguły model produktu określany przez producenta jednoznacznie rozróżnia produkty. - W przypadku kiedy dany zasób występuje wyłącznie w jednostce, w której wdrażany jest system jakości np. określa nazwę własną produktu, półproduktu, którym może być [987] "Obszar biura handlowego do którego mają dostęp klienci". W takim przypadku należy opisać ten obszar, jego cechy, parametry i główne funkcje. 
- W przypadku Tonera, powinniśmy opisać go jako [99] "Toner , gdzie XXX może wynosić : "BJC250X-2 firmy BUBBLEJET".
- toner jest nowy, gotowy do użycia i włożenia do drukarki; 
- toner jest używany (w jakiejś konkretnej drukarce); 
- toner jest zużyty (leży gdzieś na półce);
Należy opisać zasób z określeniem tego stanu, jakiego dotyczy opisywany zasób (dodać tyle zasobów ile stanów).
Z powyższego wynika,że właściwy opis do zasobu [99] "Toner XXX gotowy do użycia na półce" będzie następujący: [99] "Toner gotowy do użycia na półce, do użycia w drukarce YYY lub ZZZ", bowiem to konkretnie opisuje funkcje zasobu w strukturze.

W przypadku chęci ograniczenia w początkowej fazie wdrażania systemu jakości dużej ilości dodawania szczegółowych zasobów, można utworzyć jeden zasób, ustalony jako wiodący, lecz zamiast tworzenia osobnych zasobów opisujących poszczególne stany jest możliwość wymienienia kilku miejsc, w których dany zasób może występować, poprzez ich ustalenie oraz wpisanie ich w ramach cechy P_ID3. Jeżeli decydujesz się na ten sposób dodawania zasobów to w P_ID powinieneś wpisać numer zasobu w jakim początkowo znajduje się ten zasób. Np. jeżeli dodajemy zszywacz, to w komórce P_ID wpisujemy numer szafy na artykuły biurowe, a w P_ID3 wpisujemy numery zasobów biurek pracowników na których znajduje się zszywacz. Jednak w przypadku takiego sposobu dodawania zasobów nie będzie możliwe dokładne modelowanie procesów z uwzględnieniem zasobów w konkretnych stanach (Nie będzie można stworzyć procesu opisującego pobranie Zasobu [99] Toner XXX gotowy do użycia, w celu umieszczenia go w drukarce YYY, co oznaczałoby wytworzenie zasobu [100] Toner XXX w drukarce YYY
Jeżeli zasób jest stanowiskiem pracy, to niewątpliwie należy określić ilość minimalną oraz maksymalną występowania danego zasobu, czyli dla zasobu [321]"Sprzedawca Stacjonarny pracujący w Biurze Obsługi Klientapowinniśmy opisać ile takich stanowisk ma być zatrudnionych w firmie.
 Przyjęliśmy, że taki opis odnośnie nominalnych wartości wprowadza
 się w nawiasach kwadratowych "[" oraz "]",
 zatem opis właściwy zasobu [321] będzie następujący: [321]
 "Sprzedawca Stacjonarny w Biurze Obsługi Klienta [minimalne
 2 osoby na biuro, w czasie wakacji może być 1 osoba]".
 Z uwagi na konieczność opisania cech szczególnych, do opisu
 nazwy tego zasobu powinniśmy modelowo kompletnie tak go opisać:
 [321] "Sprzedawca Stacjonarny, szkolenia produktowe, po szkole średniej, zatrudniony na umowę o
 pracę, pracujący w
 Biurze Obsługi Klienta [minimalne
 2 osoby na biuro, w czasie wakacji może być 1 osoba]".
 Jeżeli
 zasób to [99] "Toner XXX do użycia na półce, do użycia w druarce YYY lub
 drukarce ZZZ", to
 powinniśmy dołączyć opis ilości jego występowania w nastepujący
 sposób [99] "Toner typu
 XXX gotowy
 do użycia na półce,
 do użycia w drukarce YYY lub drukarce ZZZ [minimalnie
 2 tonery maksymalnie 4, jeżeli mniej niż 1 pilnie rewitalizuj!]".


</example>
-
- error is cut before ....znajdują.
-
- -->
-
-
- <xsl:function name="system_cache__appinfo:escaped_html_to_xml">
- <xsl:param name="html" />
-
- <xsl:call-template name="system_cache__appinfo:escaped_html_to_xml">
- <xsl:with-param name="html" select="concat('___TO_DELETE_STRING____',$html,'___TO_DELETE_STRING____')"/>
- <xsl:with-param name="TO_DELETE_STRING" select="'___TO_DELETE_STRING____'"/>
- </xsl:call-template>
-
-
- </xsl:function>
-
-
- <xsl:function name="system_cache__appinfo:enter_surround_to">
- <xsl:param name="text" />
- <xsl:param name="surround_with" />
- <xsl:choose>
- <xsl:when test=" contains( $text,' ')">
- <xsl:for-each select="tokenize($text ,' ')">
- <xsl:element name="{$surround_with}"><!-- to jest przetwarzane jak jest tekst lamany -->
- <xsl:value-of select="."/>
- </xsl:element>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="$text"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:function>
-
-
-
- <xsl:template mode="escaped_html_to_xml_and_surrounded_enter.debug" match="xml">
- <xml>
- <xsl:copy-of select="system_cache__appinfo:escaped_html_to_xml(text())"></xsl:copy-of>
- </xml>
- </xsl:template>
-
-
- <xsl:template name="escaped_html_to_xml_and_surrounded_enter">
- <xsl:param name="html" required="yes"/>
- <xsl:param name="enter_surround_to" select="'br'"/>
- <xsl:variable name="element_html" select="$html/name()"/>
- <xsl:variable name="enter_surround_to_get" select="system_cache__appinfo:enter_surround_to($html,$enter_surround_to)"/>
- <xsl:variable name="out">
- <xsl:for-each select="$enter_surround_to_get">
- <xsl:element name="{name()}">
- <xsl:copy-of select="system_cache__appinfo:escaped_html_to_xml(.)"/>
- </xsl:element>
- </xsl:for-each>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test=" count($enter_surround_to_get) >1 ">
- <xsl:copy-of select="$out/*" copy-namespaces="no"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:copy-of select="system_cache__appinfo:escaped_html_to_xml($html)"></xsl:copy-of>
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:template>
-
-
- <xsl:template name="system_cache__appinfo:escaped_html_to_xml">
- <xsl:param name="html"/>
- <xsl:param name="debug" select="false()"/>
- <xsl:param name="loopno" select="1"/>
- <xsl:param name="TO_DELETE_STRING" select="'___TO_DELETE_STRING____'" /> <!-- required="yes" -->
- <xsl:variable name="anal_out">
- <anal_out>
- <xsl:for-each select=" tokenize($html,'<') ">
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3">
- <xsl:message>#131 matched < </xsl:message>
- </xsl:if>
- <xsl:variable name="lt_pos" select="position()"/>
- <lt>
- <xsl:attribute name="lt_pos" select="position()"/>
-
- <!--<xsl:value-of select="."/>-->
- <xsl:for-each select="tokenize(.,'>')">
- <gt>
- <xsl:attribute name="gtnum" select="position()"/>
- <xsl:choose>
- <xsl:when test="contains(.,'/')">
- <xsl:attribute name="debug.contains.slash" select="true()"/>
-
- </xsl:when>
- </xsl:choose>
- <xsl:attribute name="debug.last.char" select="substring(.,string-length(.)) "/>
- <!--<xsl:attribute name="debug.string.current" select="."/>-->
- <!--<xsl:attribute name="lt_pos" select="$lt_pos"/>-->
- <xsl:choose>
- <xsl:when test="$lt_pos=1 and position()=1">
- <xsl:attribute name="tag_place" select="'before_tag'"/>
- </xsl:when>
- <xsl:when test="$lt_pos=2 and position()=1">
- <xsl:attribute name="tag_place" select="'first_tag'"/>
- </xsl:when>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="position()=1 and $lt_pos>1">
- <xsl:attribute name="is_tag" select="true()"/>
- </xsl:when>
- <xsl:otherwise><xsl:attribute name="is_string" select="true()"/></xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test=" contains(substring(.,string-length(.)),'/') and position()=1 and $lt_pos > 1"><xsl:attribute name="closing" select="true()"/></xsl:when>
- <xsl:when test=" not(contains(substring(.,string-length(.)),'/')) and position()=1 and $lt_pos > 1"><xsl:attribute name="closing" select="false()"/></xsl:when>
- <!--<xsl:otherwise><xsl:attribute name="closing" select="false()"/></xsl:otherwise>-->
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="position()=1 and $lt_pos>1 and not(contains(substring(.,string-length(.)),'/')) and contains(.,' ')">
- <xsl:variable name="attributes">
-
- <!--<xsl:for-each select="tokenize(.,'="')">
-
- </xsl:for-each>-->
-
- <xsl:for-each select="tokenize(.,' ')">
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#183 attr token(<xsl:value-of select="."/>)</xsl:message></xsl:if>
- <el><xsl:value-of select="."/></el>
- </xsl:for-each>
- </xsl:variable>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#187 attributes= (<xsl:value-of select="$attributes/el[position()>1]"/>)
- + pos1/text = (<xsl:value-of select="$attributes/el[position()=1]/text()"/>)
- </xsl:message></xsl:if>
- <xsl:attribute name="attributes" select="$attributes/el[position()>1]"/>
- <xsl:copy-of select="$attributes/el[position()=1]/text()"/>
- </xsl:when>
- <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
- </xsl:choose>
- <!--<xsl:value-of select="."/>-->
- </gt>
- </xsl:for-each>
- </lt>
- </xsl:for-each>
- </anal_out>
- </xsl:variable>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3">
- <analyse>
- <before_tag><xsl:value-of select="$anal_out/anal_out/lt[@ltnum=1]/gt[@gtnum=1]/text()"/></before_tag>
- <first_tag><xsl:value-of select="$anal_out/anal_out/lt[@ltnum=2]/gt[@gtnum=1]/text()"/></first_tag>
- <closing_tag></closing_tag>
- <after_closing_tag></after_closing_tag>
- </analyse>
- <xsl:copy-of select="$anal_out"/>
- </xsl:if>
-
- <xsl:variable name="anal_num">
- <anal_num>
- <xsl:for-each select="$anal_out/anal_out/lt/gt">
- <gt><xsl:attribute name="pos" select="position()"/>
- <xsl:copy-of select="@attributes"/>
- <xsl:choose>
- <xsl:when test="@is_string=true()">
- <xsl:attribute name="level" select="0"/>
- <xsl:value-of select="text()"/></xsl:when>
- <xsl:when test="@is_tag=true() and @closing=false()">
- <xsl:attribute name="level" select="1"/>
- <xsl:choose>
- <xsl:when test=" position()=1">
- <xsl:attribute name="new_gr" select="2"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:attribute name="new_gr" select="1"/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:attribute name="element" select="tokenize(text(),' ')[1]"/><!-- text() -->
- </xsl:when>
- <xsl:when test="@is_tag=true() and @closing=true()">
- <xsl:attribute name="level" select="-1"/>
- <xsl:attribute name="element" select="tokenize(text(),' ')[1]"/>
- </xsl:when>
- </xsl:choose>
- </gt>
- </xsl:for-each>
- </anal_num>
- </xsl:variable>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:copy-of select="$anal_num"/></xsl:if>
- <xsl:variable name="anal_num1">
- <anal_num1>
- <xsl:for-each select="$anal_num/anal_num/gt">
- <gt>
- <xsl:copy-of select="@*"/>
- <xsl:choose>
- <xsl:when test="@level=0 and $anal_num/anal_num/gt[number(@pos)= number(current()/@pos)-1]/@level=1"><xsl:attribute name="level" select="1"/></xsl:when><!-- and $anal_num/anal_num/gt[@pos=current()/@pos-1]/@level= -->
- <xsl:when test="@level=0 and $anal_num/anal_num/gt[number(@pos)= number(current()/@pos)-1]/@level=-1"><xsl:attribute name="level" select="-1"/></xsl:when>
- <xsl:otherwise><xsl:attribute name="level" select="@level"/></xsl:otherwise>
- </xsl:choose>
- <xsl:value-of select="text()"/>
- </gt>
- </xsl:for-each>
- </anal_num1>
- </xsl:variable>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:copy-of select="$anal_num1"/></xsl:if>
-
- <xsl:variable name="anal_num_anal">
- <anal_num_anal>
- <xsl:for-each select="$anal_num1/anal_num1/gt">
- <gt>
- <xsl:variable name="cur_pos" select="@pos"/>
- <!--<xsl:attribute name="what_sum" select="concat('sum($anal_num/anal_num/gt[@pos<=',$cur_pos,']/@level')" />-->
- <xsl:choose>
- <xsl:when test="sum($anal_num1/anal_num1/gt[number(@pos)<= number($cur_pos) ]/@level)<0">
- <xsl:attribute name="sum_cur" select="1"/>
- <xsl:attribute name="sum_cur_293" select="true()"/>
- </xsl:when>
- <!--<xsl:when test="@level=-1">
- <xsl:attribute name="sum_cur" select="sum($anal_num1/anal_num1/gt[number(@pos)<number($cur_pos) ]/@level)+1"/>
- </xsl:when>-->
- <xsl:otherwise><xsl:attribute name="sum_cur" select="sum($anal_num1/anal_num1/gt[number(@pos)<= number($cur_pos) ]/@level)+1"/></xsl:otherwise>
- </xsl:choose>
-
- <xsl:copy-of select="@*"/>
- <xsl:value-of select="text()"/>
- <!--<copy>
- <xsl:copy-of select="$anal_num/anal_num/gt[ number(@pos)<= number($cur_pos) ]"/>
- </copy>-->
- </gt>
- </xsl:for-each>
- </anal_num_anal>
- </xsl:variable>
-
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:copy-of select="$anal_num_anal"/></xsl:if>
- <xsl:variable name="sum_cur_select">
- <xsl:choose>
- <xsl:when test="$anal_num_anal/anal_num_anal/gt[@sum_cur=1]"><xsl:value-of select="1"/>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#291-A sum_cur_select==1</xsl:message></xsl:if>
- </xsl:when>
- <xsl:otherwise>
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#291-B sum_cur_select==2</xsl:message></xsl:if>
- <xsl:value-of select="2"/></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:for-each select="$anal_num_anal/anal_num_anal/gt[@sum_cur=$sum_cur_select]"><!-- text outside of first tag -->
- <xsl:variable name="min_pos_sum_cur_1" select="min($anal_num_anal/anal_num_anal/gt[@sum_cur=$sum_cur_select and number(@pos)>number(current()/@pos)]/@pos)"/>
- <xsl:value-of select="replace(text(),$TO_DELETE_STRING,'')"/>
- <xsl:for-each select="$anal_num_anal/anal_num_anal/gt[@sum_cur=$sum_cur_select+1 and number(@pos)>number(current()/@pos) and number(@pos)<number($min_pos_sum_cur_1) and @level=1 ]"><!-- first level tags -->
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#275 riding foreach for @pos=<xsl:value-of select="@pos"/>; @element=<xsl:value-of select="@element"/></xsl:message></xsl:if>
- <xsl:choose>
- <xsl:when test=" string-length(@element) > 0">
- <xsl:if test=" number($system_cache__appinfo:escaped_html_to_xml.debug) > 3"><xsl:message>#78 string-length(@element)=<xsl:value-of select="@element"/>; </xsl:message></xsl:if>
- <xsl:element name="{@element}">
- <xsl:choose>
- <xsl:when test="@attributes">
- <xsl:variable name="attributes">
- <!--<xsl:for-each select="tokenize(@attributes,' ')">
- <e300><xsl:attribute name="val" select="."/>
- <xsl:for-each select="tokenize(.,'="')">
- <e302><xsl:attribute name="val" select="."/>
- <!-\-<xsl:attribute name="{.}" select="true()"/>-\->
- <xsl:for-each select="tokenize(.,'"')">
- <e307>
- <xsl:attribute name="val" select="."/>
- </e307>
- </xsl:for-each>
- </e302>
- </xsl:for-each>
- </e300>
- </xsl:for-each>-->
- <xsl:for-each select="tokenize(@attributes,'" ')">
- <e300><xsl:attribute name="val" select="concat(.,'"')"/>
- <xsl:for-each select="tokenize(.,'="')">
- <e302><xsl:attribute name="val" select="."/>
- <!--<xsl:attribute name="{.}" select="true()"/>-->
- <xsl:for-each select="tokenize(.,'"')">
- <e307>
- <xsl:attribute name="val" select="."/>
- </e307>
- </xsl:for-each>
- </e302>
- </xsl:for-each>
- </e300>
- </xsl:for-each>
-
- </xsl:variable>
- <xsl:for-each select="$attributes/e300">
- <xsl:attribute name="{e302[1]/@val}" select="e302[2]/e307[1]/@val"/>
- </xsl:for-each>
- <!--<xsl:copy-of select="$attributes"/>-->
- </xsl:when>
- </xsl:choose>
- <xsl:variable name="html2">
- <xsl:for-each select="$anal_num_anal/anal_num_anal/gt[@sum_cur>2 and number(@pos)>number(current()/@pos) and number(@pos)<number($min_pos_sum_cur_1) ]"><!-- text of 1 level tags -->
- <xsl:choose>
- <xsl:when test=" string-length(@element) > 0"><<xsl:value-of select="@element"/>></xsl:when>
- <xsl:otherwise><xsl:copy-of select="text()"/></xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:variable>
- <xsl:call-template name="system_cache__appinfo:escaped_html_to_xml">
- <xsl:with-param name="html" select="concat($TO_DELETE_STRING,$html2,$TO_DELETE_STRING)"/>
- <xsl:with-param name="TO_DELETE_STRING" select="$TO_DELETE_STRING"/>
- </xsl:call-template>
- </xsl:element>
- </xsl:when>
- <xsl:otherwise>
- <xsl:message>#231 empty element for @* = <xsl:copy-of select="@*"/> problem for string like "{NAZWA_BAZY_DANYCH} > {NAZWA_BAZY_DANYCH}.sql" (single lt; or rt character) testing this event (@2017-11-03) </xsl:message>
- <!--<system_cache__appinfo:escaped_html_to_xml>
- <xsl:attribute name="error" select="1"/>
- <xsl:copy-of select="."/>
- </system_cache__appinfo:escaped_html_to_xml>-->
- #246= ><xsl:copy-of select="@attributes"></xsl:copy-of>
- <!--<xsl:choose>
- <xsl:when test="@attributes">
- <xsl:variable name="attributes">
- <xsl:for-each select="tokenize(@attributes,' ')">
- <e300><xsl:attribute name="val" select="."/>
- <xsl:for-each select="tokenize(.,'="')">
- <e302><xsl:attribute name="val" select="."/>
- <!-\-<xsl:attribute name="{.}" select="true()"/>-\->
- <xsl:for-each select="tokenize(.,'"')">
- <e307>
- <xsl:attribute name="val" select="."/>
- </e307>
- </xsl:for-each>
- </e302>
- </xsl:for-each>
- </e300>
- </xsl:for-each>
- </xsl:variable>
- <xsl:for-each select="$attributes/e300">
- <xsl:attribute name="{e302[1]/@val}" select="e302[2]/e307[1]/@val"/>
- </xsl:for-each>
- <!-\-<xsl:copy-of select="$attributes"/>-\->
- </xsl:when>
- </xsl:choose>-->
- <!--<xsl:variable name="html2">
- <xsl:for-each select="$anal_num_anal/anal_num_anal/gt[@sum_cur>2 and number(@pos)>number(current()/@pos) and number(@pos)<number($min_pos_sum_cur_1) ]"><!-\- text of 1 level tags -\->
- <xsl:choose>
- <xsl:when test=" string-length(@element) > 0"><<xsl:value-of select="@element"/>></xsl:when>
- <xsl:otherwise><xsl:copy-of select="text()"/></xsl:otherwise>
- </xsl:choose>
- </xsl:for-each>
- </xsl:variable>
- <xsl:call-template name="system_cache__appinfo:escaped_html_to_xml">
- <xsl:with-param name="html" select="$html2"/>
- </xsl:call-template>-->
- </xsl:otherwise>
- </xsl:choose>
-
- </xsl:for-each>
- </xsl:for-each>
- <xsl:choose><!-- warunek xxxx<br>yyyy nie zwraca - daje IFa -->
- <xsl:when test=" count($anal_num1/anal_num1/gt) = 3
- and $anal_num_anal/anal_num_anal/gt[1][ @sum_cur='1' and @pos='1' and @level='0']
- and $anal_num_anal/anal_num_anal/gt[2][ @sum_cur='2' and @pos='2' and @level='1' and @new_gr='1']
- and $anal_num_anal/anal_num_anal/gt[3][ @sum_cur='3' and @pos='3' and @level='1']
- "><xsl:value-of select="' '"/><xsl:value-of select="$anal_num_anal/anal_num_anal/gt[3]/text()"/></xsl:when>
- </xsl:choose>
- </xsl:template>
-
-
-
- </xsl:stylesheet>
|