XSD: كيف يمكنني استيراد نوع البيانات من XSD آخر؟
-
01-10-2019 - |
سؤال
لدي البداية التالية من XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:no="http://www.sychophants.com">
<xs:import namespace="http://www.sychophants.com" schemaLocation="current_obs.xsd"/>
... ثم بعض التعاريف الأخرى ...
<xs:element name="noInDatPletd" ref="no:in_dat"/>
حيث يوجد in_dat في مخطط كتبته منظمة أخرى. ما أريد أن أفعله بشكل أساسي إنشاء مخطط يحتوي على عنصر من نوع IN_DAT الذي تم تعريفه في XSD التضخم الآخر.
هل أنا حتى على مقربة من هذا الصحيح؟ أنا جديد جدًا على XML.
ما زلت أحصل
http://location_of_my_xsd/temp.xsd:79:9: Invalid: Undefined element
no{http://www.sychophants.com}:in_dat referenced from content model
من http://www.w3.org/2001/03/webdata/xsv, ، وهو التحقق من المخطط.
شكرًا.
تحرير: بفضل اثنين منكم الذين أجابوا. يبدو أن المشكلة هي أن المنظمة الأخرى لم تحدد سمة مساحة الأسماء المستهدفة في مخططها. والنتيجة هي أنه لا يمكنني استيراد مساحة الاسم إلى مخططتي ، مما يعني أنه لا يمكنني استخدام النوع المقدم.
اضطررت إلى نسخ/لصق الرمز ، وهو ما أردت تجنبه ... لكن لا يمكنك الحصول على كل ما تريد ، على ما أعتقد.
المحلول
أرى خطأ واحد فقط: يمكنك استخدامه ref="no:in_dat"
للإشارة إلى نوع. يجب أن تستخدم type="no:in_dat"
هناك. ref
سيشير إلى عنصر عالمي (ولا ينبغي استخدامه معname
ينسب).
بصرف النظر عن ذلك ، هل نقلت المخطط الخارجي إلى المدقق بجانب المخطط الخاص بك؟ من الضروري بالطبع التحقق من صحة مخططك.
نصائح أخرى
إلى جانب التغيير المرجع = إلى اكتب =, ، تعريف المخطط الخاص بك يبدو صحيحا. من رسالة الخطأ ، أظن أن التحقق من المخطط غير قادر على تحميل Current_obs.xsd من التعيين المقدم ، وهو أمر منطقي. لن يكون لدى المدقق أي طريقة للتحقق مما إذا كان هناك نوع يسمى in_dat لأنه لا يمكن استيراد المخطط.