Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

transofrmacija XML

[es] :: XML :: transofrmacija XML

[ Pregleda: 978 | Odgovora: 8 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

priki
Srdjan Šurlan

Član broj: 24732
Poruke: 320
*.static.t-2.net.

ICQ: 174153511


Profil

icon transofrmacija XML07.01.2008. u 15:01

naime, prvi put radim sa XSL-om

pomocu XSL-a radim transformaciju jednog XML-a fajla u drugi fajl
taj XSL koji koristim, koristi više schema

mene interesuje kako da uključim i te scheme u tranformaciju
pošto mi MSXML digne grešku, verovatno traži da sve šeme budu
uključene u proces tranformacije

Hvala
Srdjan
07.01.2008. u 15:01 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1792
195.252.78.*



Profil

icon Re: transofrmacija XML08.01.2008. u 13:00
Kad kazes vise shema, na sta konkretno mislis?
Daj neki primer...

I koji XSLT engine koristis?
▪ "Why isn't my wireless mouse connected to the computer?" - 2008 Dumbest Technical Support Question award
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
08.01.2008. u 13:00 

priki
Srdjan Šurlan

Član broj: 24732
Poruke: 320
*.static.t-2.net.

ICQ: 174153511


Profil

icon Re: transofrmacija XML09.01.2008. u 08:11
pa koristim XMLpad za generiranje i MSXML
nasao sam neke opcije u prg jeziku da iskljucim scheme iz procesa transformacije

Code:

resolveExternals := False;


sad koliko je to pametno, videćemo

samo me interesuje kako ukombinovati sve te scheme
ovo je deo koda XSL-a, ako je neki tag nezatvoren, slucajno je


Code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
  xmlns="http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:edp="http://edavki.durs.si/Documents/Schemas/EDP-Common-1.xsd" xmlns:podo="http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
  <xsl:decimal-format name="MyFormat" NaN="0.00"/>
  <xsl:variable name="xmlH" select="document('xmlHead.xml')/head/ROW"/>
  <xsl:template match="/">
    <Envelope
      xsi:schemaLocation="http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd">
      <!-- head write -->
      <xsl:element name="edp:Header">
        <xsl:element name="edp:taxpayer">
          <xsl:if test="string($xmlH/acPoobTaxId)">
            <xsl:element name="edp:taxNumber">
              <xsl:value-of select="$xmlH/acPoobTaxId"/>
            </xsl:element>
        </xsl:element>
      </xsl:element>
      <xsl:element name="edp:Signatures"/>
      <!-- end of head write -->
      <xsl:element name="body">
        <xsl:element name="edp:bodyContent"/>
        <xsl:element name="REK">
          <xsl:element name="REK_2">
            <xsl:if test="string($xmlH/acOurCompany)">
              <xsl:element name="F005_Name">
                <xsl:value-of select="$xmlH/acOurCompany"/>
              </xsl:element>
            </xsl:if>
            <xsl:for-each select="dataset/ROW">
              <xsl:if test="AOP='101'">
                <xsl:element name="F101">
                  <xsl:call-template name="FormatDecimal">
                    <xsl:with-param name="value" select="anAmount"/>
                  </xsl:call-template>
                </xsl:element>
              </xsl:if>
            </xsl:for-each>
        </xsl:element>
      </xsl:element>
    </Envelope>

09.01.2008. u 08:11 

mmix
Miljan Mitrovic
Software Architect
Pancevo, Srbija

Moderator
Član broj: 17944
Poruke: 1792
195.252.78.*



Profil

icon Re: transofrmacija XML09.01.2008. u 13:14
PA bogami, fali ti podosta zatvarajucih tagova :)

pozatvarao sam gde treba, pa probaj ovo ispod. Mada, fali ti "FormatDecimal" tempalte u sorsu. Meni iskreno i dalje nije jasno gde je zapravo tvoj problem i sta ti pokusavas da postignes niti gde ti msxml baca gresku...

Code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" 
    xmlns="http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:edp="http://edavki.durs.si/Documents/Schemas/EDP-Common-1.xsd" 
    xmlns:podo="http://edavki.durs.si/Documents/Schemas/PODO-Common-1.xsd"
    xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    
    <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
    <xsl:decimal-format name="MyFormat" NaN="0.00"/>
    <xsl:variable name="xmlH" select="document('xmlHead.xml')/head/ROW"/>
    <xsl:template match="/">
        <Envelope xsi:schemaLocation="http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd http://edavki.durs.si/Documents/Schemas/REK_2_1.xsd">
            <!-- head write -->
            <xsl:element name="edp:Header">
                <xsl:element name="edp:taxpayer">
                    <xsl:if test="string($xmlH/acPoobTaxId)">
                        <xsl:element name="edp:taxNumber">
                            <xsl:value-of select="$xmlH/acPoobTaxId"/>
                        </xsl:element>
                    </xsl:if>
                </xsl:element>
            </xsl:element>
            <xsl:element name="edp:Signatures"/>
            <!-- end of head write -->
            <xsl:element name="body">
                <xsl:element name="edp:bodyContent"/>
                <xsl:element name="REK">
                    <xsl:element name="REK_2">
                        <xsl:if test="string($xmlH/acOurCompany)">
                            <xsl:element name="F005_Name">
                                <xsl:value-of select="$xmlH/acOurCompany"/>
                            </xsl:element>
                        </xsl:if>
                        <xsl:for-each select="dataset/ROW">
                            <xsl:if test="AOP='101'">
                                <xsl:element name="F101">
                                    <xsl:call-template name="FormatDecimal">
                                        <xsl:with-param name="value" select="anAmount"/>
                                    </xsl:call-template>
                                </xsl:element>
                            </xsl:if>
                        </xsl:for-each>
                    </xsl:element>
                </xsl:element>
            </xsl:element>
        </Envelope>
    </xsl:template>
</xsl:stylesheet>

▪ "Why isn't my wireless mouse connected to the computer?" - 2008 Dumbest Technical Support Question award
▪ The word 'politics' is derived from the word 'poly', meaning 'many', and the word 'ticks', meaning 'blood sucking parasites' - Larry Hardiman
▪ If the good guy gets the girl, it's rated PG; if the bad guy gets the girl, it's rated R; and if everybody gets the girl, it's rated X
09.01.2008. u 13:14 

priki
Srdjan Šurlan

Član broj: 24732
Poruke: 320
*.static.t-2.net.

ICQ: 174153511


Profil

icon Re: transofrmacija XML09.01.2008. u 13:55
Citat:
PA bogami, fali ti podosta zatvarajucih tagova :)
pozatvarao sam gde treba, pa probaj ovo ispod. Mada, fali ti "FormatDecimal" tempalte u sorsu. Meni iskreno i dalje nije jasno gde je zapravo tvoj problem i sta ti pokusavas da postignes niti gde ti msxml baca gresku...



poslao sam ti skracenu verziju
inace unutra je sve sto treba da sadrzi
sva formatiranja i ostalo

ovako
radi se sa tri šeme
dve uopštene šeme,
jedna samo za taj dokument

kad validiram taj xml,
traži mi pored te posebne i druge dve šeme negde
ako ih nema digne mi grešku

mene interesuje na koji način
da li samo tako što se sve tri šeme stave u isti folder
(probao sam, ne radi)

?

nadam se da je sad jasnije

[Ovu poruku je menjao priki dana 09.01.2008. u 16:13 GMT+1]

[Ovu poruku je menjao priki dana 09.01.2008. u 16:13 GMT+1]
09.01.2008. u 13:55 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3081
*.adsl-1.sezampro.yu.

Sajt: blog.radioni.ca


Profil

icon Re: transofrmacija XML09.01.2008. u 22:24
Koliko je meni poznato, šeme samih dokumenata koji se transformišu nemaju puno veze sa transformacijom, tj. transformacija ne povlači sa sobom i validaciju. Druga stvar su šeme, tj. nejmspejsovi samih transformacija, koji moraju da budu cakum-pakum - u slučaju da koristiš nešto izvan čistog XSLT-a (neke biblioteke funkcija, ekstenzije specifične za pojedine endžine itd).
09.01.2008. u 22:24 

priki
Srdjan Šurlan

Član broj: 24732
Poruke: 320
*.com
Via: [es] mailing liste

ICQ: 174153511


Profil

icon Re: transofrmacija XML09.01.2008. u 23:43
pa logično je da transformacija nema veze sa validacijom

ali vidi ovako, pošto sam jako svež u XSL(T) svetu i
nemam nešto puno znanja za polemiku, no biće :)
pa ću ti napisaću moj scenario

uglavnom, fajlovi se formiraju preko XSL-a
to je sve odradjeno poštujući te tri šeme
provereno je preko programa XMLSpy gde za svaki fajl,
ima ih 4, prijavi da su "valid", svi

prilikom formiranja tog dokumenta, preko transform
funkcije (nista validate) u MSXML-u (radi se preko
interfejsa u Delphiju do MSXML-a, instanca objekta,
inače koristi se čist XSLT, nikakve dodatne biblioteke ili slično)
traži mi pored šeme za taj dokumenat i te ostale dve generalne šeme,
znači total 3, jednostavno se podigne neki error sa imenom
jedne od dve generalne šeme.

ukoliko property resolveExternals, koji se nalazi u tom interfejsu
prema MSXML-u, stavi se na false, transformacija se odradi bez problema
(a taj property kaže "ne koristi ostale šeme" (ugrubo))

zato pitam kako ukljuciti sve te šeme u proces validacije,

m~iȣzxyh޲֧ڭ.
09.01.2008. u 23:43 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3081
*.dynamic.sbb.co.yu.

Sajt: blog.radioni.ca


Profil

icon Re: transofrmacija XML10.01.2008. u 14:00
Mislim da ne prosleđuješ putanje do šema kako treba. Pogledaj ovde:

http://207.46.199.254/en-us/library/ms256100.aspx

i načelno

Google: "schemalocation"
10.01.2008. u 14:00 

priki
Srdjan Šurlan

Član broj: 24732
Poruke: 320
*.com
Via: [es] mailing liste

ICQ: 174153511


Profil

icon Re: transofrmacija XML10.01.2008. u 18:12
ajd ok, probacu jos jednom
10.01.2008. u 18:12 

[es] :: XML :: transofrmacija XML

[ Pregleda: 978 | Odgovora: 8 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.