J'ai effectué beaucoup de recherches et je ne trouve pas d'exemple concis de mappage d'un schéma XML à des objets de domaine existants au lieu de créer de nouveaux objets en utilisant xjc. J'ai créé un fichier de liaisons (xjb) mais je ne trouve toujours aucun moyen d'y parvenir.JAXB xjc mappage vers des objets de domaine existants
Si j'ai un domaine existant objet que je veux JAXB utiliser comme les suivantes:
package com.blah.domain;
class CustomerOffice{
private int id;
private String name;
private String phone;
}
Et j'ai un schéma XML comme suit:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:www="http://www.blah.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.blah.com" elementFormDefault="unqualified">
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="CustomerOffice" type="www:CustomerOffice" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="CustomerOffice">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="length" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Si je vais générer les classes JAXB avec xjc il va créer une nouvelle classe appelée Client (que je veux). Il créera également une nouvelle classe appelée CustomerOffice (dont je ne veux pas, je veux qu'il utilise mon objet de domaine existant). Donc, à la place du schéma pointant sur "type: www: CustomerOffice", je voudrais utiliser le com.blah.domain.CustomerOffice existant.
J'ai essayé de rendre cet exemple aussi simple que possible, toute aide est appréciée.
Cela a fonctionné parfait! Merci beaucoup, j'espère que cela aidera d'autres personnes qui ont lutté avec cela. – colbyjax