XSD 限定/Facets

పరిమితి (restriction) ఎక్సిమ్ల్ (XML) మూలకానికి లేదా అంశానికి అంగీకరించదగిన విలువలను నిర్వచించడానికి ఉపయోగించబడుతుంది. ఎక్సిమ్ల్ పరిమితిని ఫేసెట్ అని పిలుస్తారు.

విలువల పరిమితి

ఈ ఉదాహరణ లో "age" పేరుతో ఒక పరిమితి కలిగిన మూలకాన్ని నిర్వచించబడింది. age యొక్క విలువ రెండుగా లేదా 120కు పైగా కాదు:

<xs:element name="age">
<xs:simpleType>
  <xs:restriction base="xs:integer">
    <xs:minInclusive value="0"/>
    
  </xs:restriction>
</xs:simpleType>
</xs:element>

<xs:maxInclusive value="120"/>

ఒక సమితి యొక్క విలువల పరిమితి

ఎక్సిఎమ్ఎల్ అంశం యొక్క విషయాన్ని ఒక అంగీకరించబడే విలువల సమితిలో నిర్వచించడానికి, మేము జాబితా పరిమితి (enumeration constraint) ఉపయోగించాలి.

<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" అంశం యొక్క భాగం కాదు.

ఒక పదములో విలువల పరిమితి

ఎక్సిఎమ్ఎల్ అంశం యొక్క విషయాన్ని ఒక పదములో అంగీకరించబడే నంబర్లు లేదా అక్షరాల ఒక పదములో నిర్వచించడానికి, మేము నమూనా పరిమితి (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" పేరుతో ఒక పరిమితమైన మూలకాన్ని నిర్వచిస్తుంది. అంగీకరించబడే విలువలు ఆరు అక్షరాల కలిగిన ఒక పంక్తి అక్షరాలుగా ఉంటాయి, ఈ అక్షరాలు అక్షరాలు లేదా సంఖ్యలు అక్షరాలు లేదా సంఖ్యలు ఉండాలి:

<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" గా సెట్ చేయబడింది. ఇది అర్థం చేస్తుంది కి పరిపాలకం అన్ని శుభ్రతా అక్షరాలను (నోటీసులు, రీటర్న్స్, స్పేస్లు మరియు టేబుల్స్) సింగిల్ స్పేస్ గా మారుస్తుంది, మరియు ప్రారంభం మరియు ముగింపు వద్ద స్పేస్లను తొలగిస్తుంది, మరియు పలుకొని స్పేస్లను సింగిల్ స్పేస్ గా మారుస్తుంది:

<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 అనుమతించబడే గొప్పలు అధికంగా ఉండాలి.
length అనుమతించబడే అక్షరాలు లేదా జాబితా పేర్ల సంఖ్య నిజమైన సంఖ్యగా ఉండాలి. ఇది 0 లేదా అంతకంటే ఎక్కువ ఉండాలి.
maxExclusive అనుమతించబడే విలువలు ఈ విలువకంటే తక్కువగా ఉండాలి.
maxInclusive అనుమతించబడే విలువలు ఈ విలువకంటే తక్కువగా లేదా సమానంగా ఉండాలి.
maxLength అనుమతించబడే అక్షరాలు లేదా జాబితా పేర్ల సంఖ్య గరిష్టంగా ఉండాలి. ఇది 0 లేదా అంతకంటే ఎక్కువ ఉండాలి.
minExclusive అనుమతించబడే విలువలు ఈ విలువకంటే పెద్దవిగా ఉండాలి.
minInclusive 定义数值的下限。所允许的值必需大于或等于此值。
minLength 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。
pattern 定义可接受的字符的精确序列。
totalDigits 定义所允许的阿拉伯数字的精确位数。必须大于0。
whiteSpace 定义空白字符(换行、回车、空格以及制表符)的处理方式。