Aplikace funguje nasledovne:

Pri startu si aplikace natahne vsechny XSD ze zadaneho adresare. Pak
potrebuju ke kazde XSD definici udelat validni XML message do ni vlozit
potrebne hodnoty a poslat na zadanou queue.

XSD definice ktere slouzi jako vstup jsou znacne omezene. Obsahuji jen jeden
ComplexType se sequenci elementu ruznych typu. Ale chapu ze tohle je
specialni pripad a obecne to jiste nelze..


Postup vyuziti xjc pro vygenerovani pomocnych trid neni podle me v mem
pripade vhodny.. Situace je velice podobna pripadu, kdyz by se XSD menily za
behu.

Je nejaky obecny postup sestavovani validnich XML message z dynamicky se
menicich XSD?

Dekuji za vase nazory.


XSD muze vypadat takto:

<?xml version="1.0" encoding="ibm852"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";>
  <xs:complexType name="L1_L2_CyclicDataRM">
    <xs:annotation>
      <xs:appinfo>
        <Transport>EMS</Transport>
        <MessageType>Queue</MessageType>
        <MessageName>ems.topic.L1_L2_CyclicDataRM</MessageName>
        <Timer>2000</Timer>
      </xs:appinfo>
    </xs:annotation>
    <xs:sequence>
    <xs:element name="Bucket__Brigade">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="ArrayOfString"
type="xs:string">
          <xs:annotation>
            <xs:documentation>Bucket
Brigade.ArrayOfString</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="UInt2" type="xs:unsignedShort">
          <xs:annotation>
            <xs:documentation>Bucket Brigade.UInt2</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Boolean" type="xs:boolean">
          <xs:annotation>
            <xs:documentation>Bucket Brigade.Boolean</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Int1" type="xs:string">
          <xs:annotation>
            <xs:documentation>Bucket Brigade.Int1</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Square__Waves">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="UInt1" type="xs:byte">
          <xs:annotation>
            <xs:documentation>Square Waves.UInt1</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Real8" type="xs:double">
          <xs:annotation>
            <xs:documentation>Square Waves.Real8</xs:documentation>
          </xs:annotation>
        </xs:element>
        <xs:element name="Int2" type="xs:short">
          <xs:annotation>
            <xs:documentation>Square Waves.Int2</xs:documentation>
          </xs:annotation>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  </xs:sequence>
  </xs:complexType>
</xs:schema>





2011/4/19 Robert Novotny <[email protected]>

>  Vezmime si priklad zo slovenciny. Mam gramatiku, ktora hovori, ze
> slovenska veta ma mat:
>
> Podmet - prisudok - predmet.
>
> Validacia sa pyta, ci veta ,,Pes zerie granule" splna gramatiku. Vy vsak
> chcete riesit problem typu ,,potrebujem vyrobit slovensku vetu". Ako ma
> kniznica vediet, ci ma vygenerovat slovensku vetu ,,Pes zerie granule" alebo
> ,,Vyvojar miluje Javu" alebo ,,Ja mam psa"?
>
> Ako sa spominalo, JAXB na zaklade XSD vyrobi triedu s instancnymi
> premennymi podmet, prisudok, predmet a anotaciami zaisti, ze objekt sa
> serializuje spravne a teda ze vysledne XML bude splnat schemu.
>
> Ako nad tym uvazujem, tak bud chcete mat v kode obmedzene, aby ste
> nevymysleli nahodou spravu, ktora nedava zmysel (,,Vonku prsi"), lenze to
> vam zaisti prave typovy system, ktory je reprezentovany prave triedami,
> ktore su vygenerovane v JAXB.
>
> Vy hovorite, ze nechcete generovat ziadne triedy ,,ukladane na filesystem",
> ale mne to nie je jasne. Typicky workflow znamena, ze mam XSD, v kompilacnom
> kroku z neho vypadnu klasicke Java triedy a tie pouzivam uplne rovnako ako
> akekolvek ine triedy. Alebo mate situaciu, ked sa XSD meni za behu?
>
> RN
>
>
>
> On 19. 4. 2011 14:11, Vladislav Krejčiřík wrote:
>
> ok, mozna jsem to spatne popsal. Zkusim znovu. Ja nechci nic validovat,
> protoze nemam vlastne ani co. XSD mi definuje strukturu nejake message. Ja
> bych potreboval takovou messge umet vytvorit, "vygenerovat" z XSD definice.
> Myslel jsem ze bych ziskal nejakou objektovou reprezentaci te XML message
> kde bych nastrkal hodnoty co potrebuju. Potom bych uz jen XML message poslal
> do fronty.
>
>  Nevim jestli existuje nejaka knihovna, ktera to umoznuje. Nebo budu muset
> rucne takovou XML vystavet..
>
>
>
>
>
> Dne 19. dubna 2011 12:48 Lukas "lzap" Zapletal 
> <[email protected]>napsal(a):
>
>> Vlado,
>>
>> myslim ze se tady snazis michat dve veci. DOM a XSD. Prvni jmenovany
>> slouzi
>> k manupulaci s (ted to zjednodusim) XML, druhy je urcen pro popis a
>> kontrolu
>> XML dokumentu. Krome jineho lze namapovat na JavaBeany a ruzne jine
>> struktury zname z pocitacovych jazyku.
>>
>> To co asi chces je nejprve dokument zvalidovat pomoci XSD schematu
>> (doporucuji ruzne tutorialy na netu), a pote jej proste a jednoudse nacist
>> do DOMu a parsovat. Je mozne, ze nejaka DOM knihovna to bude umet udelat
>> "v
>> jednom", ale v podstate jsou to dve ruzne veci.
>>
>> Nebo jsem te mozna spatne pochopil. Zkus to reformulovat.
>>
>> http://en.wikipedia.org/wiki/Document_Object_Model
>> http://en.wikipedia.org/wiki/XML_Schema_(W3C)
>>
>>
>> -----
>> Later,
>>  Lukas
>> --
>> View this message in context:
>> http://konference-java-cz.958153.n3.nabble.com/Vytvoreni-instance-XML-objektu-z-XSD-definice-tp2837707p2838272.html
>> Sent from the konference java.cz mailing list archive at Nabble.com.
>>
>
>
>
> --
>
> /**************************************/
> Best regards / S pozdravem
> Vladislav Krejčiřík
> http://www.vkrejcirik.info
>
>
>
>


-- 

/**************************************/
Best regards / S pozdravem
Vladislav Krejčiřík

http://www.vkrejcirik.info

Odpovedet emailem