IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Format d'échange (XML, JSON...) Java Discussion :

Lire des métadonnées codées en rdf avec JAXB 2.0


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 122
    Par défaut Lire des métadonnées codées en rdf avec JAXB 2.0
    Bonjour,

    J'ai un problème. J'ai des métadonnées encodées en rdf dans un document. Et j'aimerais utiliser jaxB pour pouvoir afficher ces métadonnées(ex le nom de l'auteur...) sur la console.
    Je sais comment faire lorsque j'ai un document xml. Je sais générer les classes avec jaxB à partir du schémaXML qui correspond à ce document xml (en utilisant la commande xjc) et je sais utiliser jaXB dans mon programme pour qu'il lise mon fichier xml et qu'il m'affiche les métadonnées qu'il contient mais quand les données sont codées en rdf ben je sais plus comment faire.

    Est-ce que quelqu'un pourrait m'aider?
    Je préviens que je ne suis pas forte en java.
    Si je n'ai pas été assez clair dites le moi.
    Merci d'avance.

  2. #2
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Avec RDF format tu vois aller voir un des API qui manipulent RDF par exemple

    jena http://jena.sourceforge.net/
    ou
    JRDF http://docs.mulgara.org/system/jrdf.html

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 122
    Par défaut
    Ok merci, je vais aller voir.
    Mais jaxB il n'est pas du tout capable de lire les rdf?

  4. #4
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Des informations ici http://en.wikipedia.org/wiki/Resourc...tion_Framework

    Mais jaxB il n'est pas du tout capable de lire les rdf?
    Ca depend dans quel format ton flux mais je doute que c'est un xml.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 122
    Par défaut
    Ben je sais pas trop.

    J'extrais ces données là d'une image.
    Est-ce que jaxB est capable de m'afficher de les information qui m'interesse donc par exemple ici: "corbis"...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 4.2-c020 1.124078, Tue Sep 11 2007 23:21:40        ">
    	<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
    		<rdf:Description rdf:about="" xmlns:xapRights="http://ns.adobe.com/xap/1.0/rights/" xmlns:exif="http://ns.adobe.com/exif/1.0/" xmlns:tiff="http://ns.adobe.com/tiff/1.0/" xmlns:crs="http://ns.adobe.com/camera-raw-settings/1.0/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xap="http://ns.adobe.com/xap/1.0/" xmlns:MicrosoftPhoto_1_="http://ns.microsoft.com/photo/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xapRights:Marked="True" xapRights:WebStatement="http://pro.corbis.com/search/searchresults.asp?txt=42-17167222&amp;openImage=42-17167222" exif:ExifVersion="0221" exif:PixelXDimension="1024" exif:PixelYDimension="768" exif:ColorSpace="65535" exif:DateTimeDigitized="2008-03-14T11:31:48.98-07:00" tiff:Orientation="1" tiff:ImageWidth="1024" tiff:ImageLength="768" tiff:PhotometricInterpretation="2" tiff:SamplesPerPixel="3" tiff:XResolution="96/1" tiff:YResolution="96/1" tiff:ResolutionUnit="2" crs:AlreadyApplied="True" photoshop:LegacyIPTCDigest="57FE7B6684B1F58DC135C80C1E2F167A" photoshop:ColorMode="3" photoshop:ICCProfile="" xap:MetadataDate="2009-02-02T11:44:10-08:00" xap:Rating="4" xap:CreateDate="2008-03-14T20:59:26.535Z" xap:ModifyDate="2008-03-14T11:31:48.98-07:00" MicrosoftPhoto_1_:Rating="63">
    			<tiff:BitsPerSample>
    				<rdf:Seq>
    					<rdf:li>8</rdf:li>
    					<rdf:li>8</rdf:li>
    					<rdf:li>8</rdf:li>
    				</rdf:Seq>
    			</tiff:BitsPerSample>
    			<dc:rights>
    				<rdf:Alt>
    					<rdf:li xml:lang="x-default">© Corbis.  All Rights Reserved.</rdf:li>
    				</rdf:Alt>
    			</dc:rights>
    			<dc:creator>
    				<rdf:Seq>
    					<rdf:li>Corbis</rdf:li>
    				</rdf:Seq>
    			</dc:creator>
    		</rdf:Description>
    	</rdf:RDF>
    </x:xmpmeta>

  6. #6
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Est-ce que jaxB est capable de m'afficher de les information qui m'interesse donc par exemple ici: "corbis"...
    Tu veux dire que le parser peut lire ton flux? La reponse c'est oui.

    Par exemple avec API jdom
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Document document = 
    new SAXBuilder().build(new ByteArrayInputStream(strRDF.getBytes()));
    Apres tu utilises XPATH pour extraire des informations qui t'interessent

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 122
    Par défaut
    Okay. Est-ce que tu pourrais m'en dire plus sur l'API jdom?

    Par exemple, avec JaxB je crée d'abord des classe à partir d'un schéma xml (avec le commande xjc) et ensuite dans mon programme, par exemple dans le main, j'implémente JaxB de la façon suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    package model;
     
    import java.io.File;
    import java.util.List;
    import javax.xml.bind.JAXBContext;
    import javax.xml.bind.JAXBException;
    import javax.xml.bind.Unmarshaller;
    import meta.*;
     
    public class TestJAXB2 {
    public static void main(String[] args) throws JAXBException {
     
        try {
          JAXBContext jc = JAXBContext.newInstance("model.meta");
          Unmarshaller unmarshaller = jc.createUnmarshaller();
          Bibliotheque bibliotheque = (Bibliotheque) unmarshaller.unmarshal(
             new File("C:\\Users\\Stephanie\\Desktop\\Xml\\MonXml.xml"));
          List<Livre> livres = bibliotheque.getLivre();
          for (int i = 0; i < livres.size(); i++) {
          Livre livre = livres.get(i);
          System.out.println("Livre ");
          System.out.println("Titre : " + livre.getTitre());
          System.out.println("Auteur : " + livre.getAuteur()
            + " " +livre.getAuteur());
          System.out.println("Editeur : " + livre.getEditeur());
          System.out.println();
          }
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
    Comment ça se passe avec Jdom et XPATH?

    J'ai trouvé des informations sur internet concernant Jdom et XPATH mais rien avec des métadonnées au format rdf.

  8. #8
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Quelles precisions:
    - Si tu as un schema XSD avec xjc tu generes les classes Java correspondantes. Avec une instance xml si elle est valide (cad conforme avec le XSD) alors tu dois recuperer les objets java avec unmarshaller facilement.

    - API Jdom + Xpath utlisent (sans la validation du flux xml avec un schema) pour extraire des infos sans avoir les objets java.

    Pour ton programme, il y a:
    - des erreurs a la compilation?
    - des exceptions quand tu executes?
    ...


    Il y a quelles choses anormales dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     JAXBContext jc = JAXBContext.newInstance("model.meta");
          Unmarshaller unmarshaller = jc.createUnmarshaller();
          Bibliotheque bibliotheque = (Bibliotheque) unmarshaller.unmarshal(
             new File("C:\\Users\\Stephanie\\Desktop\\Xml\\MonXml.xml"));
    J'aurai fait comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     JAXBContext jc = JAXBContext.newInstance("model.meta");
          Unmarshaller unmarshaller = jc.createUnmarshaller();
     
          Object rootObject = unmarshaller.unmarshal(
             new File("C:\\Users\\Stephanie\\Desktop\\Xml\\MonXml.xml"));
     
          Bibliotheque bibliotheque = (Bibliotheque)((JAXBElement)rootObject).getValue();

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 122
    Par défaut
    Je suis désolée si je suis un peu lourde mais voilà je voudrais savoir comment vous ferez en java ou qu'est-ce que vous utiliserez pour extraire les métadonnées contenu dans un fichiers de ce type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 4.1.1 RC">
     <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
        xmlns:xapMM="http://ns.adobe.com/xap/1.0/mm/"
        xmlns:exif="http://ns.adobe.com/exif/1.0/"
        xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
        xmlns:xap="http://ns.adobe.com/xap/1.0/"
       xapMM:DocumentID="adobe:docid:photoshop:957d6c10-13a5-11de-a4b7-8acb088ea786"
       xapMM:InstanceID="uuid:957d6c19-13a5-11de-a4b7-8acb088ea786"
       exif:PixelXDimension="4416"
       exif:PixelYDimension="6616"
       exif:ColorSpace="65535"
       exif:NativeDigest="36864,40960,40961,37121,37122,40962,40963,37510,40964,36867,36868,33434,33437,34850,34852,34855,34856,37377,37378,37379,37380,37381,37382,37383,37384,37385,37386,37396,41483,41484,41486,41487,41488,41492,41493,41495,41728,41729,41730,41985,41986,41987,41988,41989,41990,41991,41992,41993,41994,41995,41996,42016,0,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,22,23,24,25,26,27,28,30;22FF62EC97A61D2F0789A1693C022F59"
       tiff:Make="i2s Digibook Scanner"
       tiff:Model="Suprascan 6002 RGB"
       tiff:XResolution="30000000/100000"
       tiff:YResolution="30000000/100000"
       tiff:ResolutionUnit="2"
       tiff:Orientation="1"
       tiff:NativeDigest="256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;12030D1CEA37DF9A7E8DBF7075FEEC46"
       photoshop:Headline="Fossiles"
       photoshop:ColorMode="3"
       xap:CreatorTool="FotoWare FotoStation">
       <dc:title>
        <rdf:Alt>
         <rdf:li xml:lang="x-default">A 40</rdf:li>
        </rdf:Alt>
       </dc:title>
       <dc:subject>
        <rdf:Bag>
         <rdf:li>paléontologie</rdf:li>
        </rdf:Bag>
       </dc:subject>
       <dc:creator>
        <rdf:Seq>
         <rdf:li>Blainville, Henri-Marie Ducrotay de (1777-1850)</rdf:li>
        </rdf:Seq>
       </dc:creator>
       <dc:rights>
        <rdf:Alt>
         <rdf:li xml:lang="x-default">© Muséum de Toulouse</rdf:li>
        </rdf:Alt>
       </dc:rights>
       <dc:description>
        <rdf:Alt>
         <rdf:li xml:lang="x-default">"Fossiles pour servir de base à la zoologie et à la géologie. Fascicule vingt et unième, Mammifères. Ongulogrades / par H.-M. Ducrotay de Blainville,... [...] planches lithographiées sous sa direction par M. J. C. Werner</rdf:li>
        </rdf:Alt>
       </dc:description>
       <xap:XMPFileStamps>
        <rdf:Seq>
         <rdf:li>2009-03-18T11:47+01:00</rdf:li>
        </rdf:Seq>
       </xap:XMPFileStamps>
      </rdf:Description>
     </rdf:RDF>
    </x:xmpmeta>
    Merci d'avance pour votre attention et votre patiente

  10. #10
    Membre chevronné
    Inscrit en
    Juillet 2006
    Messages
    534
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 534
    Par défaut
    Est-ce-que le dernier contenu est valide? J'ai une erreur avec le parser SAX, avec le premier contenu il n'y a aucun probleme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception in thread "main" org.jdom.input.JDOMParseException: Error on line 33: Invalid byte 2 of 3-byte UTF-8 sequence.
    	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:468)
    	at org.jdom.input.SAXBuilder.build(SAXBuilder.java:770)

    Je suis désolée si je suis un peu lourde mais voilà je voudrais savoir comment vous ferez en java ou qu'est-ce que vous utiliserez pour extraire les métadonnées contenu dans un fichiers de ce type:
    Quelles sont les donnees exactement?



    Par exemple pour extraire title/subject/creator .... (le namespace dc) il faut:

    - declarer le(s) namespace(s)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Namespace dc = Namespace.getNamespace("dc", "http://purl.org/dc/elements/1.1/");
    - Declarer Xpath and ajouter namespace utilise and le xpath
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    XPath xp = XPath.newInstance("//dc:creator");
    xp.addNamespace(dc);
    - Recuper la liste des elements
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List xlist = xp.selectNodes(document);
    Et apres parcourir la liste en profondeur pour extraire la valeur voulue:

    Pour le premier contenu que tu nous as donne
    Pour le deuxieme contenu que tu nous as donne, on devrait avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Blainville, Henri-Marie Ducrotay de (1777-1850)

    Ceci dit, il serait mieux d'utiliser Jabx avec XSD scheme et tu auras les objets java sans utiliser les API jdom/xpath + namespace ......

Discussions similaires

  1. Lire des informations d'un code QR
    Par Mechatronique dans le forum OpenCV
    Réponses: 4
    Dernier message: 18/06/2015, 21h44
  2. lire des vidéos sur mon site avec PC ou Mac
    Par brosse7adam dans le forum Débuter
    Réponses: 3
    Dernier message: 21/07/2013, 16h49
  3. [SP-2010] Lire les métadonnées d'un PDF avec un EventReceiver
    Par speslurp dans le forum Développement Sharepoint
    Réponses: 0
    Dernier message: 20/01/2011, 13h44
  4. Réponses: 2
    Dernier message: 23/03/2008, 09h46
  5. [VB-5]Lire des métadonnées en VB
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 25/08/2007, 18h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo