Muundo wa Kina wa XSD / Facets
Manduzi (restriction) inatumiwa kutoa thamani za kimaadili ya XML kwenye uadilifu au kwa sababu ya kina. Manduzi ya uadilifu ya XML inaitwa facet.
Manduzi ya thamani
Mfano hii unaandika inayohusiana kwa kitumiaji kwa sababu ina uadilifu wa kina na kichwa:
<xs:element name="age"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="120"/> </xs:restriction> </xs:simpleType> </xs:element>
Uharibifu wa wengi
Kuwa na uharibifu wa uendeshaji wa XML kwa uharibifu wa wengi, tunahitaji kusaidia uharibifu wa mpangilio (enumeration constraint).
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "car". Vyaadilika ni Audi, Golf, BMW:
<xs:element name="car"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano wa kifo hauwezi kusoma tena kwa sababu hauwezi kusoma tena:
<xs:element name="car" type="carType"/> <xs:simpleType name="carType"> <xs:restriction base="xs:string"> <xs:enumeration value="Audi"/> <xs:enumeration value="Golf"/> <xs:enumeration value="BMW"/> </xs:restriction> </xs:simpleType>
Mwongozo:Katika hali hii, aina "carType" inaweza kutumiwa na elementi zingine, kwa sababu hii haina uhusiano wa elementi "car".
Uharibifu wa watu wengi
Kuwa na uharibifu wa uendeshaji wa XML kwa uharibifu wa watu wengi au herufi, tunahitaji kusaidia uharibifu wa mpangilio (pattern constraint).
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "letter". Vyaadilika ni herufi kichwa kati ya a - z kati yako moja:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "initials". Vyaadilika ni herufi kubwa A - Z kati yako tatu:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z][A-Z][A-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "initials". Vyaadilika ni herufi kubwa na kichwa kati ya a - z kati yako tatu:
<xs:element name="initials"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "choice". Vyaadilika ni herufi x, y au z kati yako moja:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano wa kifo wafupatiwe kwamba elementi yenye jina lilitokea kwa "prodid". Vyaadilika ni tarakimu ya kijivu kumi kubwa, kwa sababu yoyote ina uangalifu wa 0-9:
<xs:element name="prodid"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/> </xs:restriction> </xs:simpleType> </xs:element>
Kipengele cha uchaguzi wa uingia wa kwa sababu za uadilifu
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "letter". Inayoweza kufikia ni heri ya kibuni ya kichwani kwa heri ya kibuni a - z:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "letter". Inayoweza kufikia ni paa kwa paa kwa heri ya kibuni au paa kwa paa za heri ya kibuni, kila paa linapatikana na heri ya kibuni kichwani kipya kwa heri ya kibuni kikubwa. Mfano, "sToP" itapata uchaguzi kwa muundo huu, lakini "Stop", "STOP" au "stop" haipatikani kwa muundo huu:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "gender". Inayoweza kufikia ni male ama female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "password". Inayoweza kufikia ni barua moja ya heri ya kibuni iliyotengana na heri ya kibuni 8, heri hizi lazima yana heri ya kibuni kikubwa ama kichwani kikubwa kwa heri ya kibuni a - z au heri ya namba 0 - 9:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-zA-Z0-9]{8}"/> </xs:restriction> </xs:simpleType> </xs:element>
Kipengele cha uchaguzi wa heri ya hali
Kuwa na uchaguzi wa kuhakikisha heri ya hali, tunahitaji kutumia kipengele cha whiteSpace.
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "address". Kipengele hiki cha whiteSpace kinachotunzwa kama "preserve", hivyo kimeanika kwamba mchakato wa XML kinaondoa kila heri ya hali:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano hii pia kinaa kumefanya ufafanuzi wa kipengele kilicholichwa na jina lilitokea "address". Kipengele hiki cha whiteSpace kinachotunzwa kama "replace", hivyo kimeanika kwamba mchakato wa XML kinaondoa karibu na kila heri ya hali (kifungu, kichwa cha msingi, heri na tab).
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano huu pia inadefini elementi yenye kiwango kikubwa cha herufi 5 na kikubwa cha 8 kwa jina la "address". WhiteSpace kiwango kimepangwa kuwa "collapse", hivyo programu ya XML inarudisha herufi zote za hali ya hewa (mawili, kikombe, herufi za nje na nje, na mechi za kawaida zimebadilika kuwa herufi na kumekadiri herufi za kwanza na kikawaida zimeondoa, na herufi zilizopita zilizopita zimeondoa kwa herufi moja tu):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
Kiwango cha kina
Kuwa na kiwango cha kiwango cha elementi, tunahitaji kutumia kiwango, maxLength na minLength kiwango.
Mfano huu inadefini elementi yenye kiwango kikubwa cha herufi 8 kwa jina la "password":
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Mfano huu pia inadefini elementi yenye kiwango kikubwa cha herufi 5 na kikubwa cha 8 kwa jina la "password":
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:minLength value="5"/> <xs:maxLength value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
Kiwango cha aina ya data
Kiwango | Utafiti |
---|---|
enumeration | Kielele cha orodha ya thamani za kawaida |
fractionDigits | Kielele cha kina kikubwa cha mechi ya namba. Inahitajika kuwa kikubwa kama au kikubwa zaidi ya 0. |
length | Kielele cha kina kikubwa cha herufi au orodha ya matumizi. Inahitajika kuwa kikubwa kama au kikubwa zaidi ya 0. |
maxExclusive | Kielele cha kina kikubwa cha namba. Hatau kwa kumwambaa kumeonekana naona kumekadiri kwa thamani hii. |
maxInclusive | Kielele cha kina kikubwa cha namba. Hatau kwa kumwambaa kumeonekana naona kumekadiri kwa thamani hii. |
maxLength | Kielele cha kina kikubwa cha kwa herufi au orodha ya matumizi. Inahitajika kuwa kikubwa kama au kikubwa zaidi ya 0. |
minExclusive | Kielele cha kina kina cha namba. Hatau kwa kumwambaa kumeonekana naona kumekadiri kwa thamani hii. |
minInclusive | 定义数值的下限。所允许的值必需大于或等于此值。 |
minLength | 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。 |
pattern | 定义可接受的字符的精确序列。 |
totalDigits | 定义所允许的阿拉伯数字的精确位数。必须大于0。 |
whiteSpace | 定义空白字符(换行、回车、空格以及制表符)的处理方式。 |