Táto téma Pomocníka obsahuje základné informácie o transformačných šablónach XSLT, ich využití v systéme OBERON a príklad transformačnej šablóny na prevod údajov v natívnom formáte OBERON XML do inej štruktúry XML.
Nasledujúci príklad vykoná konverziu XML štruktúry obchodného partnera používanej systémom OBERON (natívny formát OBERON XML) v dokladoch ako sú napr. faktúra, objednávka, výdajka alebo príjemka do inej štruktúry XML. Obdobným spôsobom je možné vykonať aj spätnú konverziu údajov z inej štruktúry XML do štruktúry používanej systémom OBERON.
<?xml version="1.0" encoding="UTF-8"?> </BusinessPartners>
<BusinessPartner IDNum="1001">
<Name>Test, s.r.o.</Name>
<IdentificationNumber>31658768</IdentificationNumber>
<IdentificationNumber_Tax>2225557779</IdentificationNumber_Tax>
<IdentificationNumber_VAT>SK2225557779</IdentificationNumber_VAT>
<Branch_Name>Pobočka</Branch_Name>
<CustomsOffice_Number_SBL>12365478901</CustomsOffice_Number_SBL>
<Address_Residence>
<Street_Name_Full>Partizánska 138/2</Street_Name_Full>
<Postal_Code>058 01</Postal_Code>
<City>Poprad</City>
</Address_Residence>
</BusinessPartner>
. . </BusinessPartners>
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">
<partneri_zoznam> <!-- XPath výraz pre výber požadovaných položiek zo štruktúry XML a prechádzanie všetkými elementmi typu 'BusinessPartner' nachádzajúcimi sa v otcovskom elemente 'BusinessPartners' zdrojovej XML štruktúry --> <xsl:for-each select="BusinessPartners/BusinessPartner">
<partner> <!-- mapovanie vlastností pôvodného xml do novej štruktúry --> <identifikator><xsl:value-of select=" @IDNum"/></identifikator> <!-- znak '@' pred identifikátorom 'IDNum' znamená načítanie hodnoty z atribútu --> <nazov><xsl:value-of select="Name"/></nazov> <ico><xsl:value-of select="IdentificationNumber"/></ico> <dic><xsl:value-of select="IdentificationNumber_Tax"/></dic> <ic_dph><xsl:value-of select="IdentificationNumber_VAT"/></ic_dph> <pobocka_nazov><xsl:value-of select="Branch_Name"/></pobocka_nazov> <cislo_sbl><xsl:value-of select="CustomsOffice_Number_SBL"/></cislo_sbl> <sidlo_ulica><xsl:value-of select="Address_Residence/Street_Name_Full"/></sidlo_ulica> <!-- vnorenie do hlbšej úrovne pomocou znaku '/' --> <sidlo_psc><xsl:value-of select="Address_Residence/Postal_Code"/></sidlo_psc> <sidlo_obec><xsl:value-of select="Address_Residence/City"/></sidlo_obec> </partner> </xsl:for-each>
</partneri_zoznam> </xsl:template>
<?xml version="1.0" encoding="UTF-8"?> <partneri_zoznam>
<partner>
<identifikator>1001</identifikator>
<nazov>Test, s.r.o.</nazov>
<ico>31658768</ico>
<dic>2225557779</dic>
<ic_dph>SK2225557779</ic_dph>
<pobocka_nazov>Pobočka</pobocka_nazov>
<cislo_sbl>12365478901</cislo_sbl>
<sidlo_ulica>Partizánska 138/2</sidlo_ulica>
<sidlo_psc>058 01</sidlo_psc>
<sidlo_obec>Poprad</sidlo_obec>
</partner>
. . </partneri_zoznam>