XSD ਸੀਮਾਂ / Facets

ਸੀਮਤੀ (restriction) XML ਅੰਗ ਜਾਂ ਵਿਸ਼ੇਸ਼ਤਾ (facet) ਲਈ ਮਨਨਯੋਗ ਮੁੱਲਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ।

ਮੁੱਲ ਦੀ ਸੀਮਤੀ

ਨਿਮਨ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ "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" ਅੰਗ ਦੀ ਪਰਿਭਾਸ਼ਾ ਕਰਦਾ ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਹਰਫਾਂ a - z ਦਾ ਇੱਕ ਹੈ:

<xs:element name="letter">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[a-z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:element>

ਅਗਲਾ ਉਦਾਹਰਣ ਇੱਕ ਨਾਮ ਵਾਲੇ "initials" ਅੰਗ ਦੀ ਪਰਿਭਾਸ਼ਾ ਕਰਦਾ ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਹਰਫਾਂ A - Z ਦੇ ਮੁੱਢਲੇ ਤਿੰਨ ਹਨ:

<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" ਅੰਗ ਦੀ ਪਰਿਭਾਸ਼ਾ ਕਰਦਾ ਹੈ। ਮਨਨਯੋਗ ਮੁੱਲ ਹਰਫਾਂ a - z ਦੇ ਮੁੱਢਲੇ ਤਿੰਨ ਹਨ:

<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 ਚਾਰਜ ਹੁੰਦੇ ਹਨ, ਇਹ ਚਾਰਜ ਹੁੰਦੇ ਹਨ ਬਿਗਰ ਲਿਪੀ ਅਤੇ ਛੋਟੀ ਲਿਪੀ ਆਈ-ਜੀ-ਜੈਲੋ ਅਤੇ 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 ਸੀਮਤ ਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ:

ਹੇਠਲਾ ਉਦਾਹਰਣ ਇੱਕ ਸੀਮਤ ਨਾਮ ਵਾਲੇ "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 خالی حروف کا معاملہ (نقل بند، ریٹرن، خالی اور تبلیت) کا معاملہ کیسے ہو سکتا ہے؟