التلاعب البادئات مساحة الاسم في الصاج / وصول أكس الخام داخل الصاج

StackOverflow https://stackoverflow.com/questions/1601294

سؤال

وموكلي القائم على الصاج يولد XML التالية ويرسله إلى خدمة ويب .NET:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<AuthenticationHeader xmlns="http://www.w3.org/2001/XMLSchema-instance">
<Password xmlns="http://schemas.datacontract.org/2004/07/">temp123</Password>
<UserName xmlns="http://schemas.datacontract.org/2004/07/">temp321</UserName>
</AuthenticationHeader>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<GetTracks xmlns="http://tempuri.org/">
  <TrackName>baby</TrackName><ArtistID>0</ArtistID><AlbumID>0</AlbumID><Start>0</Start><Count> 20</Count>
</GetTracks></SOAP-ENV:Body></SOAP-ENV:Envelope>

والمشكلة أواجه هو أنه يجب أن لدي للعنصر AuthenticationHeader بادئة محددة ولكن لا ينبغي أن يكون إلحاق البداية. هذا هو بالضبط ما كنت بحاجة للحصول على ولدت لكي لا تحصل على خطأ من خدمة الإنترنت:

<AuthenticationHeader xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

وبينما إذا كنت توليد بادئة أثناء إنشاء اسم، يتم إضافته تلقائيا بعد السمة XMLNS وفي بداية العنصر.

وحاولت لكزة حولها مع حزمة javax.xml.soap كاملة ولكن لم أتمكن من العثور على أي شيء يمكن أن يساعدني للالتفاف حول هذا. هل تستطيع أن تعطيني إشارة على الاتجاه الذي يذهب من أجل الحصول على مثل هذا أكس لدت؟

وعلى الجانب علما، وأنا أتساءل عما إذا كان هذا هو حتى السلوك صالحة لخدمة الويب رفض XML صالح مثل هذا؟ ما هو الدافع لمثل هذا السلوك التفسير؟

وشكرا لك!

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

المحلول

وتحمل جافا SOAP واجهات برمجة التطبيقات عموما الامتثال المواصفات من خدمتهم التحدث، وحتى أشياء مثل السيطرة بادئة غرامة الحبيبات لا تحصل يتعرض عبر API، منذ ينبغي أن يكون هناك أي سبب لرعاية.

في الحالات السابقة من هذا القبيل، لقد كثيرا ما اضطررت الى اللجوء الى البناء اليدوي للكائن SOAP DOM، وهي مؤلمة بشكل مخيف.

وفي الآونة الأخيرة، لقد كان الحظ جيدة إلى حد معقول في الحصول على خدمات ويب الربيع لإنتاج بالضبط ما أنا بعد. ومن خلاصات وAPI الصاج، في حين لا يزال توفير خطاطيف للحصول على وقذرة مع DOM على مستوى XML. أقترح يعطيها ومحاولة معرفة ما يمكن أن تصل.

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