JAXB - Mapping

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • JAXB - Mapping

    Moin ich bastel gerade an einem XML-Mapping für folgende Datei:

    Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <Products ProgramID="111" ShopID="222">
    3. <Product ProgramID="333" ArticleNumber="444" xmlns:contentDetection="cd:extension">
    4. <CategoryPath>
    5. <ProductCategoryID>998877</ProductCategoryID>
    6. <ProductCategoryPath>Kategorie1</ProductCategoryPath>
    7. </CategoryPath>
    8. <Price>
    9. <DisplayPrice>9.90 EUR </Displa1yPrice>
    10. </Price>
    11. </Product>
    12. <Product>
    13. ...
    Alles anzeigen


    Da mich nicht alles interessiert möchte ich das Mapping so kurz wie möglich halten.

    Mapping:

    Quellcode

    1. @XmlAccessorType(XmlAccessType.NONE)
    2. @XmlRootElement(name="Products")
    3. public class Products {
    4. @XmlAttribute(name="ProgramID")
    5. private @Getter @Setter String programID;
    6. @XmlElement(name="Product")
    7. private @Getter List<Product> products = new ArrayList<Product>();
    8. }


    Quellcode

    1. @XmlAccessorType(XmlAccessType.NONE)
    2. public class Product {
    3. @XmlElement(name="PathProductCategoryID")
    4. private @Getter @Setter String categoryId;
    5. }


    Mich interessiert nun eigentlich nur die Kategorie-Nummer, will also eigentlich nicht noch extra ein Katgorie-Objekt benutzen. Kann ich die Id irgendwie direkt in die Produktklasse mappen. Bei dem Preis genau das selbe Spiel - will den Preis direkt im Produkt und nicht über ein weiter gekapseltes Objekt.

    Vielleicht hat ja einer eine Idee.

    Gruß,
    Benni
  • Na, bist du weiter gekommen?
    Habe noch nie mit JAXB gearbeitet und es sieht nicht so aus, als ob man sich hier über die Klasse = Node Konvention hinweg setzen darf.
    Hier wird wohl ein Workaround beschrieben der das Java Objekt erst wieder Marshallt, dann XPATH anwendet und dann wieder Unmarhallt: http://www.devguli.com/blog/eng/jaxb-binder-and-xpath/