최신 웹 개발 튜토리얼
 

XSD 제한 / 패싯


제한 XML 요소 또는 속성에 대한 허용 값을 정의하는 데 사용됩니다. XML 요소에 대한 제한은면이라고합니다.


값에 대한 제한

다음 예제라는 요소 정의 "age" 제한과 함께합니다. 나이의 값은 120보다 0보다 작거나 클 수 없습니다 :

<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 요소의 내용을 제한하기 위해 열거 제약 조건을 사용한다.

아래의 예는라는 요소 정의 "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>

Note: 이 경우 유형 "carType" 그것의 일부가 아니기 때문에, 다른 요소들에 의해 이용 될 수있는 "car" 소자.


일련의 값에 대한 제한

사용할 수있는 숫자 또는 문자의 시리즈를 정의하는 XML 요소의 내용을 한정하기 위해 패턴 제약 조건을 사용한다.

아래의 예는라는 요소 정의 "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 소문자의 0 개 이상의 사건이다 :

<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" 제한과 함께합니다. 유일하게 허용되는 값은 남성 또는 여성입니다 :

<xs:element name="gender">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="male|female"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

다음 예제라는 요소 정의 "password" 제한과 함께합니다. 이 행 정확히 8 자이어야하며, 그 문자는에서 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>

공백 문자에 대한 제한

처리 방법을 공백 문자를 지정하려면, 우리는 공백 제약 조건을 사용할 수 있습니다.

이 예제라는 요소 정의 "address" 제한과 함께합니다. 공백 제한 조건이 설정되어 "preserve" XML 프로세서는 공백 문자를 제거하지 않습니다 것을 의미한다 :

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

이 예는 또한라는 요소 정의 "address" 제한과 함께합니다. 공백 제한 조건이 설정되어 "replace" XML 프로세서에 공백이 모든 공백 문자 (줄 바꿈, 탭, 공백 및 캐리지 리턴)을 대체 할 것을 의미한다 :

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="replace"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

이 예는 또한라는 요소 정의 "address" 제한과 함께합니다. 공백 제약 조건으로 설정 "collapse" XML 프로세서가 모든 공백 문자를 (줄 선행 및 후행 공백이 제거, 탭이 공백, 캐리지 리턴이 공백으로 대체, 피드, 여러 공간에 감소 제거 할 것을 의미한다, 하나의 공간)

<xs:element name="address">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="collapse"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

길이에 대한 제한

요소의 값의 길이를 제한하기 위해, 우리는 길이가 최대 길이 및 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 처리 (줄, 탭, 공백 및 캐리지 리턴을 공급)하는 방법 공백 지정