XSD: كيفية إعادة تعريف نوع بيانات النموذج البسيط على سبيل المثال. من XS: سلسلة إلى XS: عدد صحيح

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

سؤال

أحاول تمديد وتخصيص مخطط XSD خارجي (من معيار FixML). أحتاج إلى تغيير نوع البيانات لبعض العناصر ، دون لمس المخطط الأصلي ، ولكن عن طريق إعادة تعريفه ؛ ولكن تم العثور عليها مرهقة للغاية.

ما هو موجود:

الحقول base.xsd

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="UTCTimestamp">
<xs:simpleType>

ما أريده أن يصبح:

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="xs:string">
<xs:simpleType>

ما جربته (لكنني فشلت):

<xs:redefine schemaLocation="fields-base.xsd">
            <xs:simpleType name="LastUpdateTime_t">
              <xs:restriction base="xs:string" />
            </xs:simpleType>
 </xs:redefine>

لا يبدو أن الكتب والشبكة قد ساعدت كثيرًا أيضًا ، لذلك بدأت أتساءل عما إذا كان هذا ممكنًا من الناحية النظرية على الإطلاق.

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

المحلول

بقدر ما أستطيع أن أقول أن هذا غير ممكن.

كانت إعادة تعريف الوحيدة التي يمكنني إجراؤها في XMLSpy هي:

<xs:redefine schemaLocation="fields-base.xsd"> 
        <xs:simpleType name="LastUpdateTime_t"> 
          <xs:restriction base="LastUpdateTime_t" /> 
        </xs:simpleType> 
</xs:redefine> 

وهذا هو ، يجب أن يكون التقييد الجديد يعتمد على تقييد الأساس.

يمكن أن يكون أن xmlspy خطأ في هذا الأمر.

هذا اقتباس خفي إلى حد ما من تعريف مخطط W3C XML:

داخل [الأطفال] ، يجب أن يكون لكل نموذج بسيط من بين [أطفاله] ويجب أن يكون لكل معقد قيود أو امتداد بين [الأطفال] القيمة الفعلية · يجب أن تكون قاعدتها [السمة] هي نفسها مثل · القيمة الفعلية · لسممة اسمها بالإضافة إلى مساحة الاسم الهدف ؛

قد نتحدث عن هذا (هذا جزء من المواصفات روابط XMLSpy لهذا الخطأ).

كان المثال الوحيد الجيد حقًا لإعادة تعريف الأنواع البسيطة التي يمكنني العثور عليها هنا. في هذا المثال ، إعادة التعريف مخصصة فقط للتعدادات.

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