سؤال

ولدي قليلا من مشكلة. كتبت في API منذ زمن طويل لنظام الإنتاج لدينا، وأنها تستخدم أباتشي الفول XML. وكان مخطط متجانس (أي أي واردات، كل شيء كان من ضمن نفس المخطط)، وعملت كل شيء على ما يرام، حتى لو كان رمز للتعامل مع API مطول بشكل لا يصدق. لقد كتبت منذ API راحة أبسط بكثير وأكثر أناقة باستخدام JAXB، مع أجزاء من واحدة من العمر في الاعتبار، أي مخطط مختلفة، ولكن بعض العناصر متطابقة. وتأمل في تنظيف وتبسيط قانون ملزم لي في API القديم، لقد استبدال بعض الأجزاء قبل حذفها واستيراد مخطط جديد واستخدام تلك العناصر بدلا من ذلك. ومع ذلك، كلما أحاول تحليل الوثائق التي تستخدم خليط جديد من المخطط، وأحصل على خطأ التحقق من صحة من الفول XML:

error: cvc-complex-type.2.4a: Expected element 'redundant-element@http://www.my.com/old/xmlns' instead of 'redundant-element@http://www.my.com/new/xmlns' here in element redundant-element-list@http://www.my.com/old/xmlns

هل واجه أحد هذا من قبل؟ هل لديك أي حلول أو أفكار؟ فما استقاموا لكم فاستقيموا نقدر ذلك حقا. شكرا لك بلطف.

هل كانت مفيدة؟

المحلول 2

وشكرا لكم يرجى ردكم. لقد حاولت مضيفا صراحة مساحة الاسم الجديد، سواء على جذر الوثيقة وعلى 'زائدة عنصر "نفسها، في العديد من التباديل. IE:

<oldxmlns:root xmlns:oldxmlns="abc" xmnls:newxmlns="xyz">
      .....
</oldxmlns:root>

و.. و...

<oldxmlns:root xmlns:oldxmlns="abc">
   <oldxmlns:nested-element>
         .....
      <newxmlns:redundant-element xmnls:newxmlns="xyz">
           .....
      </newxmlns:redundant-element>
         .....
   </oldxmlns:nested-element>
</oldxmlns:root>

... ولقد حاولت ايضا العديد من مجموعات مع مساحة الأسماء الافتراضية وغيرها، وعملت لا شيء.

نصائح أخرى

ويبدو أن مساحة الاسم في الوثيقة لا تزال واحدة من العمر. من الصعب أن أقول دون المخططات والوثائق.

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