Zdravim,

Mozna to zni prilis trivialne, ale co kdybyste to XML generoval jako
validni, tj. bez white space v dateTime hodnotach a yhnul se tak nutnosti
psani vlastnich konvertoru. Pokud Vam jde o citelnost, preci muzete i pak
generovat citelne XML s odradkovanim mezi elementy apod. 

Prijde mim, ze jdete zcela zbytecne hlavou proti zdi a drzel bych se hesla
ze vzdy je lepsi odstranit pricinu problemu (whitespace v dateTime), nez
resit/obchazet dusledky (JAXB2 odmita XML zpracovat + pisu si vlastni
konvertory + musim pouzivat externi/interni JAXB binding predpis apod).

Jinak pokud mate problem s JAXB2, zeptejte se primo v jejich konferenci.
Moje zkusenost s ni je vice nez pozitivni a odpovedi jsem mel vzdy do max
druheho dne.

Honza

-----Původní zpráva-----
Od: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] za
uživatele Rastislav Siekel
Odesláno: Tuesday, October 30, 2007 08:47
Komu: 'Java'
Předmět: RE: JAXB - unmarshal s white space


Nie, existuje atribút "binding" ktorý umožňuje zadať názov externého súboru,
ktorý bude tiež slúžiť na generovanie JAVA zdrojákov. Ale aj tak ostáva
nutnosť písať si pre skoro každý typ vlastný "tupý" handler, ktorý len
otrimuje vstup . Ale nejde mi do hlavy, že by sa na to v JAXB, alebo
vlastnej XML Schéme fakt nemyslelo.

Rastislav "Bedo" Siekel


> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Lukas Zapletal
> Sent: 29. októbra 2007 11:19
> To: Java
> Subject: Re: JAXB - unmarshal s white space
> 
>  No a ta vec musi byt soucasti toho schematu? Nemuzete to xjc
> generatoru rict nejak jinak?
> 
> LZ
> 
> 2007/10/29, Rastislav Siekel <[EMAIL PROTECTED]>:
> >
> >
> > Odpoviem si sám :-(
> >
> > Po niekoľkých dňoch hľadania som zistil, že bez niečoho
> podobného to
> > zrejme
> > nepôjde:
> >
> > XML Schéma:
> > ...
> > <jaxb:globalBindings>
> >            <jaxb:javaType name="java.util.Date"
> xmlType="xs:dateTime"
> >             parseMethod="xxx.yyy.jaxb.DateConverter.parseDateTime"
> >             
> printMethod="xxx.yyy.jaxb.DateConverter.printDateTime" />
> > </jaxb:globalBindings> ...
> >
> > A musím si samozrejme napísať Triedu
> "xxx.yyy.jaxb.DateConverter". A
> > neplatí to len pre dátumy, ale aj pre "enumeration" a
> vlastne všetky
> > typy okrem čísel.
> > Toto riešenie mi fakt nepripadá vhodné, pretože potrebujem vytvoriť
> > schému pre heterogénne prostredie a druhá strana nemá vedieť, že 
> > používam nejaký JAXB.
> >
> > Takže výsledok - sú možné 2 riešenia:
> > 1. Používať starý dobrý JAXB 1.
> > 2. Prispôsobiť XML tomu, že hodnoty musia byť bez white space na
> > jednom riadku vrátane štartovacieho a ukončovacieho tagu.
> >
> > Ja osobne pôjdem prvou cestou.
> >
> >
> > Ak by ste mi niekto tieto zistenia vyvrátil, bol by som
> šťastný človek
> > ;-)
> >
> > Rastislav "Bedo" Siekel.
> >
> >
> >  ________________________________
> >  From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> > On Behalf Of Rastislav Siekel
> > Sent: 22. októbra 2007 15:13
> > To: 'Java'
> > Subject: JAXB - unmarshal s white space
> >
> >
> >
> > Zdravím vospolok,
> >
> > asi to bude len nejaká blbosť, ale nemôžem prísť na to, ako donútiť
> > JAXB robiť unmarshalling, ak je vstupné XML well-formated. 
> Pokiaľ je
> > na vstupe niečo ako:
> >
> > <dtZadania>2007-09-30T15:23:24.000</dtZadania>
> >
> > - je všetko v poriadku.
> >
> >
> > Ak tam je dátum vrátane \n:
> >
> > <dtZadania>
> >     2007-09-30T15:23:24.000
> > </dtZadania>
> >
> > tak mi to proste vráti NULL.
> >
> >
> > Schéma bola najprv:
> > <xsd:element name="dtZadania" type=""xsd:dateTime" minOccurs="0" 
> > maxOccurs="1" />
> >
> > teraz je:
> >
> >
> >
> > <xsd:element name="dtZadania" minOccurs="0" maxOccurs="1">
> > <xsd:simpleType>
> >         <xsd:restriction base="xsd:dateTime">
> >             <xsd:whiteSpace value="collapse" />
> >         </xsd:restriction>
> >     </xsd:simpleType>
> > </xsd:element>
> >
> >
> > Poraďte niekto, kde sa to nastavuje?
> >
> > Rastislav "Bedo" Siekel
> >
> > P.S. JAXB je vo verzii 2.1.5
> >
> >  ________________________________
> >
> > Ing. Rastislav Siekel
> > Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia E-mail :
> > <[EMAIL PROTECTED]> Tel : 041/562 54 91 Fax : 041/562 54 97 Mobil : 
> > 0905 34 00 20
> >
> 
> 
> --
> Lukas Zapletal
> http://lukas.zapletalovi.com
> 

Odpovedet emailem