Jaxb in Java 6 لا تبتعد عن بادئة مساحة الاسم الصحيحة في ملف XML المحلي
-
27-09-2019 - |
سؤال
لدي مخطط مع سمات متابعة في عنصر المخطط:
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:abc="http://abc.example.com" targetNamespace="http://abc.example.com" elementFormDefault="qualified" attributeFormDefault="unqualified">
يمكنني تجميعها والحصول على دروس جافا. باستخدام هذه الفئات ، قمت بملء البيانات في كائن ما وحمزتها للحصول على ملف XML.
لكن عناصر XML في هذا الملف الذي تم تنظيمه لا يوجد بادئة "ABC".
لقد قمت بالتعديل قليلاً باستخدام XMLStreamWriter.setPrefix أثناء التنقل ، ويمكنني الحصول على ملف XML مع جميع العناصر المسبقة باسم "ABC".
الآن عندما أحاول إلغاء تحديد ملف XML نفسه ، فإنه يلقي خطأ قائلاً:
org.xml.sax.saxparsexception: البادئة "ABC" للعنصر "ABC: Name" غير ملزم.
الرجاء مساعدتي في كيفية إخبار Jaxb بأن ABC هي بادئة صحيحة.
شكرا لك براديب
المحلول
اسم البادئة لا معنى لها. كل ما تفعله هو إجراء اتصال بين مساحة الاسم والعلامات التي تنتمي إلى مساحة الاسم. ما إذا كانت البادئة ABC أو مساحة الاسم أو لا توجد بادئة لأن مساحة الاسم الافتراضية لا تهم. بقدر ما أعرف ، لا يمكنك فرض استخدام بادئة أو الاسم المحدد لبادئة في JaxB.
نصائح أخرى
في المقالة أدناه ، أوضح كيف يمكن تحقيق ذلك باستخدام NamespacePrefixMapper
من Jaxb RI ، و @XmlSchema
التعليقات التوضيحية مع Eclipselink jaxb (moxy):