2010-12-19 3 views
8

Je doute si il ya quelque chose comme ceci mais j'ai pensé à demander si:
Est-ce que quelqu'un sait s'il existe une bibliothèque dans Java qui lit un fichier xsd et "crée" les éléments définis par exemple. dans un format String à utiliser dans le code?
E.g. lire dans le schéma suivant:Java/XSD analyse

<?xml version="1.0" encoding="utf-8"?> 
     <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
      <xs:element name="Address"> 
      <xs:complexType> 
       <xs:sequence> 
        <xs:element name="Street" type="xs:string" /> 
        <xs:element name="Town" type="xs:string" /> 
        <xs:element name="Country" type="xs:string" minOccurs="0" /> 
       </xs:element> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:schema> 

Et une chaîne dans le format suivant:

<Address> 
    <Street></Street> 
    <Town></Town> 
    <Country></Country> 
</Address> 

outils automatiques font quelque chose de similaire, à savoir analyser un WSDL et de la section de types créent par exemple des classes JAXB que peuvent être des instances des éléments définis dans le schéma.
Y a-t-il une bibliothèque pour cela?

MISE À JOUR:
Par exemple, dans Eclipse lors de la création d'un descripteur XML pour une application web, il présente une table d'arbre avec tous les éléments requis pour les utilisateurs de remplir selon le schéma. Comment font-ils? J'imagine qu'ils analysent les xsds inclus dans les pots
Toute entrée est la bienvenue.
Merci!

+0

Est-ce que JAXB ne fait pas quelque chose comme ça? Ou ai-je mal compris la question? –

+0

@Hovercraft: Je ne veux pas créer de classes. Je veux seulement lire dans un fichier xsd et créer une chaîne d'éléments définis. Je suppose que c'est similaire à la façon dont les classes jaxb sont créées – Cratylus

+1

Je ne vois pas pourquoi quelque chose comme ça existerait? Quelle est l'exigence? Combien d'éléments vides sont générés pour un élément 0-à-plusieurs? Aussi, est-ce important que la sortie ne capture pas le type? – Synesso

Répondre

1

Si c'est un fichier WSDL avec lequel vous voulez générer des classes Java, Axis WSDL2Java (basé sur JAXB) peut être utilisé pour obtenir des classes basées sur le schéma défini dans le WSDL. JAXB offre également un cadre de reliure que vous pourriez vouloir rechercher.

http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/twbs_jaxbschema2java.html

lien ci-dessus devrait être utile.

+0

Je ne veux pas générer des classes. Oui, je connais ces cadres. Je ne suis intéressé que par la création d'éléments à partir de xsd. – Cratylus

+0

Oh désolé !!! Oui, ma réponse est inutile – Fazal

1

oXygen has an XML instance generator qui peut générer un ensemble d'échantillons de documents XML basés sur un schéma XML donné.

You can also invoke it from the commandline.

+0

Est-ce que cela peut être utilisé à l'exécution? Je ne suis pas intéressé par un outil qui génère simplement des échantillons à partir de xsd. Je suis intéressé à l'utiliser à l'exécution pour tout xsd fourni par l'utilisateur – Cratylus

+0

Oui, vous pouvez. Exécutez les scripts de ligne de commande fournis ou configurez les références de classpath appropriées, etc. en utilisant les scripts comme guide (oXygen est un outil basé sur Java). Ensuite, au moment de l'exécution, donnez-lui un URI à un XSD aux fichiers gen. –