XSD အချက်အလက်/Facets

အတ္ထပိုး (restriction) သည် XML အကိုယ်စားပုံ သို့မဟုတ် အကွက် အတွက် လိုက်နာနိုင် ပြီး အသုံးပြုနိုင် အရေးကြီး အတ္ထပိုး ဖြစ်သည်။

အတ္ထပိုး

ဒီ အကြောင်းအရာ သည် "age" အမည် ရှိ သော ကိုယ်စားပုံ တစ်ခု ဖြစ်၍ ကိုယ်စားပုံ၏ အသုံးချက် သည် 0 မှ 120 ထိ မပို၍ ဖြစ်နိုင်ချေ။

<xs:element name="age">

  
    <xs:minInclusive value="0"/>
    
  


对一组值的限定

如需把 XML 元素的内容限制为一组可接受的值,我们要使用枚举约束(enumeration constraint)。

下面的例子定义了带有一个限定的名为 "car" 的元素。可接受的值只有:Audi, Golf, BMW:

<xs:element name="car">

  
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  


အထက်အမှတ်အသား ကို အခြား အမည်အဖြစ် နှင့် အသုံးပြုနိုင်သည်

<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
  
    <xs:enumeration value="Audi"/>
    <xs:enumeration value="Golf"/>
    <xs:enumeration value="BMW"/>
  

ဖော်ပြချက်ဒါဟာ အမည်အဖြစ် "carType" ကို အသုံးပြုသော အအုပ်အချက် အချက်အလက် တစ်ခု ကို အသုံးပြုနိုင်သော အအုပ်အချက် အချက်အလက် တစ်ခု ဖြစ်သည်။ ဒါဟာ "car" အအုပ်အချက် အချက်အလက် တစ်ခု အပေါ် အစုံးမရှိသေးပါ။

အချက်အလက် အစည်းအဝေး တစ်ခု အတွက် သတ်မှတ်ခြင်း

XML အအုပ်အချက်များ၏ အကြောင်းအရာ ကို အသုံးပြုသော အချက်အလက် အစည်းအဝေး တစ်ခု ကို ဒေါ်လုပ်ရန် သုံးလျှင် ပုံစံ ကန့်စပ် (pattern constraint) ကို အသုံးပြုရမည်။

အောက်ပါ အမှတ်အသား တွင် အမည်အဖြစ် "letter" ကို အသုံးပြုသော အအုပ်အချက် တစ်ခု ကို ဒေါ်လုပ်ထားသည်။ လိုအပ်သော သတ်မှတ်ထားသော အချက်အလက်များမှာ အကြီးအမြင်း အစိတ် အချက်အလက် a - z တို့၏ တစ်ခုခု ဖြစ်သည်။

<xs:element name="letter">

  
    <xs:pattern value="[a-z]"/>
  


နောက်လာမှုတွင် အမည်အဖြစ် "initials" ကို အသုံးပြုသော အအုပ်အချက် တစ်ခု ကို ဒေါ်လုပ်ထားသည်။ လိုအပ်သော သတ်မှတ်ထားသော အချက်အလက်များမှာ အကြီးအမြင်း အစိတ် အချက်အလက် A - Z တို့၏ အချက်အလက် ၃ ခု ဖြစ်သည်။

<xs:element name="initials">

  
    <xs:pattern value="[A-Z][A-Z][A-Z]"/>
  


နောက်လာမှုတွင် အမည်အဖြစ် "initials" ကို အသုံးပြုသော အအုပ်အချက် တစ်ခု ကို ဒေါ်လုပ်ထားသည်။ လိုအပ်သော သတ်မှတ်ထားသော အချက်အလက်များမှာ အကြီးအမြင်း အစိတ် အချက်အလက် a - z တို့၏ အချက်အလက် ၃ ခု ဖြစ်သည်။

<xs:element name="initials">

  
    <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
  


နောက်လာမှုတွင် အမည်အဖြစ် "choice" ကို အသုံးပြုသော အအုပ်အချက် တစ်ခု ကို ဒေါ်လုပ်ထားသည်။ လိုအပ်သော သတ်မှတ်ထားသော အချက်အလက်များမှာ အစိတ် အချက်အလက် x, y သို့မဟုတ် z တို့၏ တစ်ခုခု ဖြစ်သည်။

<xs:element name="choice">

  
    <xs:pattern value="[xyz]"/>
  


နောက်လာမှုတွင် အမည်အဖြစ် "prodid" ကို အသုံးပြုသော အအုပ်အချက် တစ်ခု ကို ဒေါ်လုပ်ထားသည်။ လိုအပ်သော သတ်မှတ်ထားသော အချက်အလက်များမှာ အာရှ အင်္ဂတ် နှစ် ယောက် တို့၏ အစည်းအဝေး ၀-၉ ကို ဖြစ်သည်။



  
    
  


对一系列值的其他限定

下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值是 a - z 中零个或多个字母:

<xs:element name="letter">

  
    
  


下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值是一对或多对字母,每对字母由一个小写字母后跟一个大写字母组成。举个例子,"sToP"将会通过这种模式的验证,但是 "Stop"、"STOP" 或者 "stop" 无法通过验证:

<xs:element name="letter">

  
    <xs:pattern value="([a-z][A-Z])+"/>
  


ဒါက အမှတ် 10 ပုံနှိပ် အမှတ် "gender" အမှတ်အရာ တစ်ခု ကို ဒါက အမှတ် "gender" အမှတ်အရာ ကို အသုံးပြုသည်။ အခွင့်ပြု အားစား အချက်အလက် က "male" သို့မဟုတ် "female" ဖြစ်သည်:

<xs:element name="gender">

  
    <xs:pattern value="male|female"/>
  


ဒါက အမှတ် 7 ပုံနှိပ် အမှတ် "password" အမှတ်အရာ တစ်ခု ကို ဒါက အမှတ် "password" အမှတ်အရာ ကို အသုံးပြုသည်။ အခွင့်ပြု အားစား အချက်အလက် က အချက်အလက် တစ်ခု မှ အချက်အလက် 8 ခု အထိ ဖြစ်သည်။ အချက်အလက် က အရိုးအမှတ် အရာ အားလုံး သို့မဟုတ် အချက်အလက် အရာ အားလုံး ဖြစ်သည်။ အရိုးအမှတ် အရာ က အရိုးအမှတ် အရာ အားလုံး သို့မဟုတ် အရိုးအမှတ် အရာ အားလုံး ဖြစ်သည်:



  
    <xs:pattern value="[a-zA-Z0-9]{8}"/>
  


အကျဉ်းအားစား အချက်အလက် အမှတ်အရာ

အကျဉ်းအားစား အချက်အလက် ကို ကျွမ်းကျွမ်းစွာ ဖြတ်သန်းရန် အမှတ် "whiteSpace" အမှတ်အရာ ကို အသုံးပြုရမည်:

ဒါက အမှတ် 3 ပုံနှိပ် အမှတ် "address" အမှတ်အရာ တစ်ခု ကို ဒါက အမှတ် "address" အမှတ်အရာ ကို အသုံးပြုသည်။ ဒါက whiteSpace အမှတ်အရာ က "preserve" အဖြစ် အစိုးရ ပြီး ဒါက အမှတ်အရာ က XML အသုံးပြုသူ က အဆိုပါ အကျဉ်းအားစား အချက်အလက် အား ဖျက်သိမ်းမပြီး ဖြစ်သည်:



  
    <xs:whiteSpace value="preserve"/>
  


ဒါက အမှတ် 1 ပုံနှိပ် အမှတ် "address" အမှတ်အရာ တစ်ခု ကို ဒါက အမှတ် "address" အမှတ်အရာ ကို အသုံးပြုသည်။ ဒါက whiteSpace အမှတ်အရာ က "replace" အဖြစ် အစိုးရ ပြီး ဒါက အမှတ်အရာ က XML အသုံးပြုသူ က အဆိုပါ အကျဉ်းအားစား အချက်အလက် အား ဖျက်သိမ်းပေးသည် (အသားပြောင်းခြင်း၊ အရိုးရိုးခြင်း၊ အကွက်အကျဉ်း၊ အကွက်အကျဉ်း)ပြီ:



  
    
  


这个例子也定义了带有一个限定的名为 "address" 的元素。这个 whiteSpace 限定被设置为 "collapse",这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格):



  
    
  


对长度的限定

如需限制元素中值的长度,我们需要使用 length、maxLength 以及 minLength 限定。

本例定义了带有一个限定且名为 "password" 的元素。其值必须精确到 8 个字符:



  
    
  


这个例子也定义了带有一个限定的名为 "password" 的元素。其值最小为 5 个字符,最大为 8 个字符:



  
    
    
  


数据类型的限定

限定 描述
enumeration 定义可接受值的一个列表
fractionDigits 定义所允许的最大的小数位数。必须大于等于0。
length 定义所允许的字符或者列表项目的精确数目。必须大于或等于0。
maxExclusive 定义数值的上限。所允许的值必须小于此值。
maxInclusive 定义数值的上限。所允许的值必须小于或等于此值。
maxLength 定义所允许的字符或者列表项目的最大数目。必须大于或等于0。
minExclusive အရေးယူ အနောက်တန်း အသုံးပြုသည်။ ခွင့်ပြုထားသော တိကျမှုများ သည် အရေးယူ အနောက်တန်း ထက် ပို၍ ဖြစ်သင့်သည်。
minInclusive အချက်အလက် နှစ်မြောက်
minLength အချက်အလက် အချိန်
pattern ခွန်းကျန် အချက်အလက်
totalDigits အချက်အလက် အချိန်
whiteSpace အကွက် အချက်အလက်