سؤال

وأنا إنشاء فئات جافا من وجهة نظري ملف المخطط 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 توليد الطرق مصنع متوقعا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top