sabato 9 luglio 2011

Generare xsd usando schemagen

Prendendo in esame la struttura degli oggetti analizzata nel precedente post “Gestione di file Xml con JAX-B”  grazie all’utility schemagen presente nella jdk 1.6 è possibile generare il file xsd.

Assicurandosi che il percorso della jdk fino alla directory bin sia presente nel path del sistema operativo (da MSDOS digitare echo %path% per verificare), è sufficiente posizionarsi nella directory che contiene i file java di interesse ed  invocare il pgm schemagen seguito dai nomi delle classi interessate.

Nel caso del nostro precedente esempio :



Possiamo notare come il file .xsd sia stato prontamente creato nella nostra directory.
Aprendo il file questo è il risultato:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="listaUsers" type="listaUtenti"/>

  <xs:complexType name="listaUtenti">
    <xs:sequence>
      <xs:element name="elencoUtenti" nillable="true" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="utente" type="utente" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="applicazione" type="xs:string" use="required"/>
  </xs:complexType>

  <xs:complexType name="utente">
    <xs:sequence>
      <xs:element name="user" type="xs:string"/>
      <xs:element name="password" type="xs:string"/>
      <xs:element name="nome" type="xs:string"/>
      <xs:element name="cognome" type="xs:string"/>
      <xs:element name="email" type="xs:string"/>
      <xs:element name="dataNascita" type="xs:dateTime"/>
      <xs:element name="timeStampInserimento" type="xs:dateTime"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="timeStampAdapter">
    <xs:complexContent>
      <xs:extension base="xmlAdapter">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="xmlAdapter" abstract="true">
    <xs:sequence/>
  </xs:complexType>
</xs:schema>





Nessun commento:

Posta un commento