سؤال

أرغب في توفير بعض مساحات الأسماء بشكل افتراضي عند تشغيل XQuery في SQL Server 2005، هل هذا ممكن؟

على سبيل المثال، أود أن أفعل ما يلي:

select * from TableWithXML
where
FieldWithXML.exist(
declare namespace nsp="http://www.example.com/exampleNamespace";
nsp:root/nsp:childnode) = 1

دون الحاجة إلى إعادة تعريف مساحة الاسم في كل مرة، حتى يتعرف SQL على nsp بدون تضمين البرولوج في كل مرة.

أفكار؟

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

المحلول

ال xml و xsi مساحات الأسماء هي مساحات الأسماء الوحيدة المحددة مسبقًا والتي لا يتعين عليك الإعلان عنها بنفسك.يجب أن يتم الإعلان عن كافة مساحات الأسماء الأخرى بشكل صريح في كل استعلام.

هناك طريقتان للإعلان عن مساحات الأسماء:

  1. عبر declare بيان داخل XQuery.
  2. عبر جملة With XMLNAMESPACES في عبارة TSQL.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top