XSD అంశం పునఃస్థాపన (Element Substitution)
- ముందస్తు పేజీ XSD <anyAttribute>
- తదుపరి పేజీ XSD ఉదాహరణ
XML షేమా ద్వారా, ఒక అంశం మరొక అంశాన్ని పునఃస్థాపించవచ్చు.
అంశం పునఃస్థాపన
ఉదాహరణకు చూడండి: మా వినియోగదారులు యుకె మరియు నార్వే నుండి వస్తారు. మాకు XML పత్రంలో నార్వేసీ ఘటకాలను లేదా ఇంగ్లీష్ ఘటకాలను ఎంచుకోవచ్చు అనే సామర్థ్యం కలిగించాలి.
ఈ సమస్యను పరిష్కరించడానికి, మాకు XML స్కీమాలో ఒక ప్రకటనను నిర్వహించాలి: substitutionGroupమొదట, మాకు ప్రధాన ఘటకాన్ని ప్రకటించాలి, అప్పుడు మనం ప్రత్యక్ష ఘటకాన్ని ప్రకటించాలి, ఈ ప్రత్యక్ష ఘటకాలు ప్రధాన ఘటకాన్ని పునరుద్ధరించగలవు.
<xs:element name="name" type="xs:string"/> <xs:element name="navn" substitutionGroup="name"/>
పైని ఉదాహరణలో, "name" ఘటకం ప్రధాన ఘటకం మరియు "navn" ఘటకం "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>John Smith
ఘటకాన్ని పునరుద్ధరించడం నిరోధించండి
కొన్ని ప్రత్యేక కేంద్రక ఘటకాన్ని పునరుద్ధరించడానికి నిరోధించడానికి block అంశాన్ని వాడండి:
<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>John Smith
使用 substitutionGroup
可替换元素的类型必须和主元素相同,或者从主元素衍生而来。假如可替换元素的类型与主元素的类型相同,那么您就不必规定可替换元素的类型了。
మీరు substitutionGroup లోని అన్ని అంశాలు (ప్రధాన అంశాలు మరియు పునఃస్థాపించబడిన అంశాలు) అన్నింటినీ గ్లోబల్ అంశంగా ప్రకటించాలి, లేకపోతే అవి పని చేయలేవు!
గ్లోబల్ అంశం (Global Elements) ఏమిటి?
గ్లోబల్ అంశం "schema" అంశం యొక్క ప్రత్యక్ష సంబంధిత అంశాలు! లోకల్ అంశాలు (Local elements) ఇతర అంశాలలో ప్రవేశించిన అంశాలు.
- ముందస్తు పేజీ XSD <anyAttribute>
- తదుపరి పేజీ XSD ఉదాహరణ