XSD: كيف يمكنني استيراد نوع البيانات من XSD آخر؟

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

  •  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 لأنه لا يمكن استيراد المخطط.

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