رمز جيل JAXB XJC - الدرجة ObjectFactory غير مكتملة
سؤال
وأنا إنشاء فئات جافا من وجهة نظري ملف المخطط XSD باستخدام XJC أداة سطر الأوامر. الطبقة ObjectFactory يولد محتوى غير كامل. فهو يولد طرق خلق دون زخرفة JAXBElement<Type> createType
.
ما قد يكون السبب في ذلك؟ مع تحياتي دومينيك
المحلول
وفقط بعض أنواع في لدت XJC-JAXB2 مغلفة الحاجة JAXBElement
ملزمة. تلك الأنواع التي تحتوي على الشرح @XMLRootElement
لا تحتاج إلى المجمع، وذلك المصنع الكائن لا يولد واحد.
نصائح أخرى
وJAXB يولد طرق المصنع الذي خلق JAXBElement من مثيل كائن فقط إذا XSD الخاص بك يحتوي على كل تعريف complexType وتعريف عنصر منفصل باستخدام تلك complexType مع نفس الاسم، على سبيل المثال:
<complexType name="my-type">
...
</complexType>
<element name="my-type" type="tns:my-type"/>
في هذه الحالة، سوف JAXB لا تعليق على الفئة التي تم إنشاؤها مع الشرحXmlRootElement، ولكن سوف توفر وسائل مصنع تحتاج إلى إنشاء JAXBElement من مثيل الكائن. بهذه الطريقة، يمكنك تسلسل الحالات من أنواع غير الجذر عنصر من العناصر الجذرية بسهولة.
وهكذا، يجب عليك فقط إضافة "عنصر" -declaration بنفس الاسم بالإضافة إلى أي تعريف complexType كنت تنوي استخدامها كعنصر المستوى الأعلى، وسوف ObjectFactory توليد الطرق مصنع متوقعا.