XSD 限定/Facets
ਸੀਮਤਾ (restriction) ਐਕਸਐਮਲ ਏਲੀਮੈਂਟ ਜਾਂ ਅਟਰੀਬਿਊਟ ਲਈ ਮਨਜ਼ੂਰ ਮੁੱਲ ਨਿਰਧਾਰਿਤ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।ਐਕਸਐਮਲ ਏਲੀਮੈਂਟ ਦੀ ਸੀਮਤਾ ਨੂੰ ਫੈਸਟ ਕਿਹਾ ਜਾਂਦਾ ਹੈ。
ਮੁੱਲ ਦੀ ਸੀਮਤਾ
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਸੀਮਤ ਅਤੇ 'age' ਨਾਮ ਵਾਲਾ ਏਲੀਮੈਂਟ ਦਿਸ਼ਾ ਦਿੱਤੀ ਗਈ ਹੈ।age ਦਾ ਮੁੱਲ 0 ਤੋਂ ਘੱਟ ਨਹੀਂ ਅਤੇ 120 ਤੋਂ ਵੱਧ ਨਹੀਂ ਹੋ ਸਕਦਾ:
<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>
ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਮੁੱਲਾਂ ਦੀ ਸੀਮਾ
ਜੇਕਰ ਤੁਸੀਂ XML ਪੈਮੈਂਟ ਦੇ ਸਮੱਗਰੀ ਨੂੰ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਮੁੱਲਾਂ ਦੇ ਗਰੁੱਪ ਵਿੱਚ ਸੀਮਿਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਅਸੀਂ ਵਰਣਨਾ (enumeration constraint) ਸੀਮਾਂ ਵਰਤਣਾ ਹੋਵੇਗਾ。
ਨਿਮਨਲਿਖਤ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "car" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਇਹ ਹਨ: 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>
ਉੱਪਰੋਕਤ ਉਦਾਹਰਣ ਇਸ ਤਰ੍ਹਾਂ ਵੀ ਲਿਖਿਆ ਜਾ ਸਕਦਾ ਹੈ:
<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>
ਟਿੱਪਣੀ:ਇਸ ਹਾਲਾਤ ਵਿੱਚ, ਪ੍ਰਕਾਰ "carType" ਦੂਜੇ ਪੈਮੈਂਟਾਂ ਵਿੱਚ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਇਹ "car" ਪੈਮੈਂਟ ਦਾ ਹਿੱਸਾ ਨਹੀਂ ਹੈ。
ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਮੁੱਲਾਂ ਦੀ ਸੀਮਾ
ਜੇਕਰ ਤੁਸੀਂ XML ਪੈਮੈਂਟ ਦੇ ਸਮੱਗਰੀ ਨੂੰ ਇੱਕ ਪ੍ਰਮਾਣਿਤ ਸ਼ਰਤਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਸੀਮਿਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਅਸੀਂ ਪੈਟਰਨ ਸੀਮਾਂ (pattern constraint) ਵਰਤਣਾ ਹੋਵੇਗਾ。
ਨਿਮਨਲਿਖਤ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "letter" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਅਲਫਾ-ਬੀਟਾ ਵਿੱਚ ਹੁਣਾਂ ਅੱਖਰਾਂ ਦੇ ਇੱਕ ਹੈ:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
ਅਗਲਾ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "initials" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਅਲਫਾ-ਬੀਟਾ ਵਿੱਚ ਹੁਣਾਂ ਅੱਖਰਾਂ ਦੇ ਤਿੰਨ ਹਨ:
<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>
ਅਗਲਾ ਉਦਾਹਰਣ ਵੀ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "initials" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਅਲਫਾ-ਬੀਟਾ ਵਿੱਚ ਹੁਣਾਂ ਜਾਂ ਘੱਟ ਹੁਣਾਂ ਅੱਖਰਾਂ ਦੇ ਤਿੰਨ ਹਨ:
<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>
ਅਗਲਾ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "choice" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਅੱਖਰ x, y ਜਾਂ z ਵਿੱਚੋਂ ਇੱਕ ਹੈ:
<xs:element name="choice"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[xyz]"/> </xs:restriction> </xs:simpleType> </xs:element>
ਅਗਲਾ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ ਪੈਮੈਂਟ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ ਜਿਸ ਦਾ ਨਾਮ "prodid" ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਪੰਜ ਅਰਬੀ ਨੰਬਰਾਂ ਦਾ ਇੱਕ ਕਰਮਚਾ ਹੈ ਅਤੇ ਹਰੇਕ ਨੰਬਰ ਦਾ ਦਾਇਰਾ 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>
ਇੱਕ ਸ਼੍ਰੇਣੀ ਦੇ ਮੁੱਲਾਂ ਦੀਆਂ ਹੋਰ ਸੀਮਿਤਤਾਵਾਂ
ਨਿਮਨ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ ਹੈ "letter" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਹਨ a-z ਵਿੱਚ ਕੋਈ ਵੀ ਅੱਖਰ ਜਾਂ ਬਹੁਤ ਸਾਰੇ ਅੱਖਰ:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z])*"/> </xs:restriction> </xs:simpleType> </xs:element>
ਨਿਮਨ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ ਹੈ "letter" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਹਨ ਇੱਕ ਜਾਂ ਬਹੁਤ ਸਾਰੇ ਅਲਫਾਬੇਟਿਕ ਜੋ ਇੱਕ ਛੋਟਾ ਅਲਫਾ ਅਤੇ ਇੱਕ ਬਿਗ ਅਲਫਾ ਦੀ ਜੋੜੀ ਵਿੱਚ ਹੋਣਗੇ। ਉਦਾਹਰਣ ਵਜੋਂ, "sToP" ਇਸ ਪੈਟਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਰੇਗਾ, ਪਰ "Stop"、"STOP" ਜਾਂ "stop" ਪੁਸ਼ਟੀ ਨਹੀਂ ਕਰਣਗੇ:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="([a-z][A-Z])+"/> </xs:restriction> </xs:simpleType> </xs:element>
ਨਿਮਨ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ ਹੈ "gender" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਹਨ male ਜਾਂ female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
ਨਿਮਨ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ ਹੈ "password" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਹੈ ਜੋ 8 ਅੱਖਰਾਂ ਵਾਲੀ ਇੱਕ ਲਾਈਨ ਹੈ ਅਤੇ ਇਹ ਅੱਖਰ ਹੋਣਗੇ ਬਿਗ ਅਲਫਾ ਜਾਂ ਚੰਦਰਮਾ ਅਲਫਾ a-z ਜਾਂ 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>
ਖਾਲੀ ਅੱਖਰਾਂ ਦੀ ਸੀਮਿਤਤਾ
ਜੇਕਰ ਖਾਲੀ ਅੱਖਰਾਂ (whitespace characters) ਦੀ ਹੱਲ ਕਰਨਾ ਹੈ ਤਾਂ ਅਸੀਂ whiteSpace ਸੀਮਿਤ ਵਰਤਣਾ ਚਾਹੀਦੇ ਹਾਂ:
ਨਿਮਨ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਨਾਮ ਹੈ "address" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਹ whiteSpace ਸੀਮਿਤ ਨੂੰ "preserve" ਵਿੱਚ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ ਇਹ ਮਤਲਬ ਕਿ XML ਪ੍ਰੋਸੈਸਰ ਖਾਲੀ ਅੱਖਰਾਂ ਹਟਾਉਣਾ ਨਹੀਂ ਚਾਹੇਗਾ:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
ਇਹ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਹੈ "address" ਵਾਲੇ ਸੀਮਿਤ ਅਣੂ ਨੂੰ ਵੀ ਪਰਿਭਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਇਹ whiteSpace ਸੀਮਿਤ ਨੂੰ "replace" ਵਿੱਚ ਸੈਟ ਕੀਤਾ ਗਿਆ ਹੈ ਇਹ ਮਤਲਬ ਕਿ XML ਪ੍ਰੋਸੈਸਰ ਸਾਰੇ ਖਾਲੀ ਅੱਖਰਾਂ (ਨਾਲੀਆਂ, ਰਿਟਰਨ ਕ੍ਰਾਂਟਸ, ਖਾਲੀ ਅੱਖਰ ਅਤੇ ਟੇਬਲਜ਼) ਹਟਾਵੇਗਾ:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਵੀ ਇੱਕ ਸੀਮਾ ਨਾਲ ਨਾਮ "address" ਵਾਲਾ ਐਲੀਮੈਂਟ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ whiteSpace ਸੀਮਾ ਨੂੰ "collapse" ਮੁੱਲ ਦਿੱਤਾ ਗਿਆ ਹੈ، ਮਤਲਬ XML ਪ੍ਰੋਸੈਸਰ ਸਾਰੇ ਖਾਲੀ ਚਿੱਨ੍ਹਾਂ (ਨਿਊਲਾਈਨ, ਕਰਾਸ ਰੋਅ, ਸਪੇਸ ਅਤੇ ਟੇਬਲ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤੇ ਜਾਣਗੇ ਅਤੇ ਸ਼ੁਰੂ ਅਤੇ ਸਮਾਪਤ ਖਾਲੀ ਚਿੱਨ੍ਹ ਹਟਾਏ ਜਾਣਗੇ, ਜਦੋਂ ਕਿ ਬਹੁਤ ਸਾਰੇ ਖਾਲੀ ਚਿੱਨ੍ਹ ਇੱਕ ਹੀ ਖਾਲੀ ਚਿੱਨ੍ਹ ਵਿੱਚ ਬਦਲਦੇ ਹਨ):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
ਲੰਬਾਈ ਦੀਆਂ ਸੀਮਾਵਾਂ
ਜੇਕਰ ਤੁਸੀਂ ਐਲੀਮੈਂਟ ਵਿੱਚ ਮੁੱਲ ਦੀ ਲੰਬਾਈ ਸੀਮਿਤ ਕਰਨੀ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ length, maxLength ਅਤੇ minLength ਸੀਮਾਵਾਂ ਦਾ ਉਪਯੋਗ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ。
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਇੱਕ ਸੀਮਾ ਨਾਲ ਨਾਮ "password" ਵਾਲਾ ਐਲੀਮੈਂਟ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਦਾ ਮਿਨੀਮਲ ਮੁੱਲ 8 ਚਿੱਨ੍ਹ ਹੈ:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
ਇਸ ਉਦਾਹਰਣ ਵਿੱਚ ਵੀ ਇੱਕ ਸੀਮਾ ਨਾਲ ਨਾਮ "password" ਵਾਲਾ ਐਲੀਮੈਂਟ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ। ਇਸ ਦਾ ਮਿਨੀਮਲ ਮੁੱਲ 5 ਚਿੱਨ੍ਹ ਅਤੇ ਮਾਕਸਮਲ ਮੁੱਲ 8 ਚਿੱਨ੍ਹ ਹੈ:
<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>
ਡਾਟਾ ਟਾਈਪ ਦੀਆਂ ਸੀਮਾਂ
ਸੀਮਾਂ | ਵਰਣਨ |
---|---|
enumeration | ਮਨਜ਼ੂਰ ਮੁੱਲਾਂ ਦੀ ਇੱਕ ਸੂਚੀ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ |
fractionDigits | ਮਨਜ਼ੂਰ ਮੁੱਢਲਾ ਮੁੱਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਇਹ 0 ਤੋਂ ਵੱਡਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
length | ਮਨਜ਼ੂਰ ਚਿੱਨ੍ਹਾਂ ਜਾਂ ਸੂਚੀ ਅਂਤਰਿਕਾਂ ਦੀ ਸਹੀ ਸੰਖਿਆ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਇਹ 0 ਤੋਂ ਵੱਡਾ ਜਾਂ ਬਰਾਬਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
maxExclusive | ਮੁੱਢਲਾ ਮੁੱਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਇਸ ਤੋਂ ਘੱਟ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
maxInclusive | ਮੁੱਢਲਾ ਮੁੱਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਇਸ ਤੋਂ ਘੱਟ ਜਾਂ ਬਰਾਬਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
maxLength | ਮਨਜ਼ੂਰ ਚਿੱਨ੍ਹਾਂ ਜਾਂ ਸੂਚੀ ਅਂਤਰਿਕਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਇਹ 0 ਤੋਂ ਵੱਡਾ ਜਾਂ ਬਰਾਬਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
minExclusive | ਮੁੱਢਲਾ ਮੁੱਲ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ। ਮਨਜ਼ੂਰ ਮੁੱਲ ਇਸ ਤੋਂ ਵੱਡਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ。 |
minInclusive | 定义数值的下限。所允许的值必需大于或等于此值。 |
minLength | 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。 |
pattern | 定义可接受的字符的精确序列。 |
totalDigits | 定义所允许的阿拉伯数字的精确位数。必须大于0。 |
whiteSpace | 定义空白字符(换行、回车、空格以及制表符)的处理方式。 |