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

transofrmacija XML

[es] :: XML :: transofrmacija XML

[ Pregleda: 3309 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

priki

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

ICQ: 174153511


+26 Profil

icon transofrmacija XML07.01.2008. u 15:01 - pre 198 meseci
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
 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

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

I koji XSLT engine koristis?
Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

priki

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

ICQ: 174153511


+26 Profil

icon Re: transofrmacija XML09.01.2008. u 08:11 - pre 198 meseci
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>

 
Odgovor na temu

mmix
Miljan Mitrović
Profesorkin muz
Passau, Deutschland

SuperModerator
Član broj: 17944
Poruke: 6042



+4631 Profil

icon Re: transofrmacija XML09.01.2008. u 13:14 - pre 198 meseci
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>

Sloba je za 12 godina promenio antropološki kod srpskog naroda. On je od jednog naroda koji je bio veseo, pomalo površan, od jednog naroda koji je bio znatiželjan, koji je voleo da vidi, da putuje, da upozna,
od naroda koji je bio kosmopolitski napravio narod koji je namršten, mrzovoljan, sumnjicav, zaplašen, narod koji se stalno nešto žali, kome je stalno neko kriv… - Z.Đinđić
 
Odgovor na temu

priki

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

ICQ: 174153511


+26 Profil

icon Re: transofrmacija XML09.01.2008. u 13:55 - pre 198 meseci
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]
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: transofrmacija XML09.01.2008. u 22:24 - pre 198 meseci
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).
 
Odgovor na temu

priki

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

ICQ: 174153511


+26 Profil

icon Re: transofrmacija XML09.01.2008. u 23:43 - pre 198 meseci
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ȣzx�y�������h��޲֧��ڭ�.���
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: transofrmacija XML10.01.2008. u 14:00 - pre 198 meseci
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"
 
Odgovor na temu

priki

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

ICQ: 174153511


+26 Profil

icon Re: transofrmacija XML10.01.2008. u 18:12 - pre 198 meseci
ajd ok, probacu jos jednom
 
Odgovor na temu

[es] :: XML :: transofrmacija XML

[ Pregleda: 3309 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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