Latest web development tutorials

استبدال عناصر مخطط XML

بواسطة مخطط XML، يمكن استبدال عنصر مع عنصر آخر.


عناصر استبدال

دعونا توضيح: عملائنا من المملكة المتحدة والنرويج. ونحن نريد أن يكون لديك القدرة على السماح للمستخدمين اختيار لاستخدام أسماء العناصر النرويجية في وثيقة XML أو اسم اللغة الإنجليزية من هذا العنصر.

لحل هذه المشكلة، يمكننا تحديد substitutionGroup في مخطط XML. أولا، فإننا نعلن من العنصر الرئيسي، فإننا سوف نعلن العناصر الصغرى، ويمكن اعتبار هذه العناصر مرة واحدة أنها قادرة على استبدال العنصر الأساسي.

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

في المثال أعلاه، "اسم" العنصر هو العنصر الرئيسي، "حمل اسم" عنصر يمكن أن تحل محل "اسم" العنصر.

النظر في جزء مخطط XML:

<xs:element name="name" type="xs:string"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo"/>
<xs:element name="kunde" substitutionGroup="customer"/>

وثيقة XML صالحة مثل هذا (وفقا للمخطط المذكور أعلاه):

<customer>
<name>John Smith</name>
</customer>

أو شيئا من هذا القبيل:

<kunde>
<navn>John Smith</navn>
</kunde>


استبدال عنصر توقف

لمنع عناصر أخرى تحل محل عنصر المحدد، واستخدام خصائص كتلة:

<xs:element name="name" type="xs:string" block="substitution"/>

رؤية جزء مخطط XML:

<xs:element name="name" type="xs:string" block="substitution"/>
<xs:element name="navn" substitutionGroup="name"/>

<xs:complexType name="custinfo">
<xs:sequence>
<xs:element ref="name"/>
</xs:sequence>
</xs:complexType>

<xs:element name="customer" type="custinfo" block="substitution"/>
<xs:element name="kunde" substitutionGroup="customer"/>

يجب أن تبدو وثيقة XML صالحة مثل هذا (وفقا للمخطط المذكور أعلاه):

<customer>
<name>John Smith</name>
</customer>

ومع ذلك، فإن الوثيقة التالية لم تعد مشروعة:

<kunde>
<navn>John Smith</navn>
</kunde>


استخدام substitutionGroup

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

يرجى ملاحظة، substitutionGroup يجب إعلان جميع العناصر في (العناصر الأساسية وعناصر قابلة للاستبدال) كعناصر العالمية، وإلا فإنه لن ينجح!


ما هو العنصر العالمي (عناصر العالمية)؟

يشير عنصر العالمي لعناصر تابعة مباشرة لعنصر "المخطط"! العناصر المحلية (العناصر المحلية) يشير إلى عناصر متداخلة ضمن عناصر أخرى.