XML 스키마 튜토리얼login
XML 스키마 튜토리얼
작가:php.cn  업데이트 시간:2022-04-20 14:13:02

XML 스키마 자격/패싯


XSD Restriction / Facets


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


값의 한정

다음 예에서는 한정을 사용하여 "age"라는 요소를 정의합니다. age 값은 0보다 작거나 120보다 클 수 없습니다.

<xs:element name="age">
<xs:simpleType>
​​ <xs:restriction base="xs:integer">
​​​​ <xs:minInclusive value="0"/>
​​​​ <xs:maxInclusive value="120"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>


값 집합으로 제한

XML 요소의 콘텐츠를 허용 가능한 값 집합으로 제한하려면 열거 제약 조건(열거 제약 조건)을 사용합니다. ).

다음 예에서는 한정자가 있는 "car"라는 요소를 정의합니다. 허용되는 값은 다음과 같습니다: Audi, Golf, BMW:

<xs:element name="car">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:열거 값="Audi"/>
​​​​ <xs:열거값="골프"/>
​​​​ <xs:열거값="BMW"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

위의 예는 다음과 같이 작성할 수도 있습니다.

<xs:element name="car" type="carType"/>

<xs:simpleType name="carType">
​ <xs:restriction base="xs:string">
​​ <xs:열거 값="Audi"/>
​​ <xs:열거값="골프"/>
​​ <xs:열거값="BMW"/>
​ </xs:restriction>
</xs:simpleType>

참고: 이 경우 "carType" 유형은 "car" 요소의 일부가 아니기 때문에 다른 요소에서 사용할 수 있습니다.


일련의 값에 대한 제한

XML 요소의 내용 제한을 일련의 사용 가능한 숫자나 문자로 정의해야 하는 경우 패턴 제약 조건을 사용해야 합니다.

다음 예에서는 한정자가 있는 "letter"라는 요소를 정의합니다. 허용되는 값은 소문자 a - z 중 하나만입니다:

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="[a-z]"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

다음 예에서는 한정자를 사용하여 "initials"라는 요소를 정의합니다. 허용되는 값은 대문자 A - Z 중 3개입니다:

<xs:element name="initials">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="[A-Z][A-Z][A-Z]"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

다음 예에서는 한정자를 사용하여 "initials"라는 요소도 정의합니다. 허용되는 값은 대문자 또는 소문자 a - z와 그 중 3개입니다:

<xs:element name="initials">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

다음 예에서는 제한이 있는 "choice"라는 요소를 정의합니다. 허용되는 값은 문자 x, y 또는 z 중 하나입니다.

<xs:요소 이름="선택">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="[xyz]"/>
​​ </xs:제한>
</xs:단순 유형>
</xs:요소>

다음 예에서는 한정자가 있는 "prodid"라는 요소를 정의합니다. 허용되는 값은 5개의 일련의 아라비아 숫자이며 각 숫자는 0-9 범위에 있습니다.

<xs:element name="prodid">
<xs:simpleType>
​​ <xs:restriction base="xs:integer">
​​​​ <xs:패턴 값="[0-9][0-9][0-9][0-9][0-9]"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>


값 범위에 대한 기타 제한

다음 예에서는 제한이 있는 "letter"라는 요소를 정의합니다. 허용되는 값은 a - z의 0개 이상의 문자입니다:

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="([a-z])*"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

다음 예에서는 한정자를 사용하여 "letter"라는 요소를 정의합니다. 허용되는 값은 하나 이상의 문자 쌍이며, 각 문자는 소문자와 대문자로 구성됩니다. 예를 들어 "sToP"는 이 모드에서 유효성 검사를 통과하지만 "Stop", "STOP" 또는 "stop"은 유효성 검사를 통과하지 못합니다.

<xs:element name="letter">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:패턴 값="([a-z][A-Z])+"/>
​​ </xs:제한>
</xs:simpleType>
</xs:element>

다음 예에서는 한정자가 있는 "gender"라는 요소를 정의합니다. 허용되는 값은 남성 또는 여성입니다:

<xs:element name="gender">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:pattern value="남성|여성"/>
​​ </xs:제한>
</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:제한>

다음 예에서는 한정자가 있는 "address"라는 요소를 정의합니다. 공백 제한은 "보존"으로 설정됩니다. 이는 XML 프로세서가 공백 문자를 제거하지 않음을 의미합니다.


<xs:element name="address">

<xs:simpleType>

​​ <xs:restriction base="xs:string">

​​​​ <xs:whiteSpace value="보존"/>

​​ </xs:제한>

</xs:simpleType>

</xs:element>

이 예에서는 한정자를 사용하여 "address"라는 요소도 정의합니다. 공백 제한은 "replace"로 설정됩니다. 이는 XML 프로세서가 모든 공백 문자(줄 바꿈, 캐리지 리턴, 공백 및 탭)를 제거함을 의미합니다.


<xs:element name="address"> <xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:whiteSpace value="replace"/>
​​ </xs:제한>
</xs:단순 유형>

</xs:요소>

이 예에서는 한정자가 있는 "address"라는 요소도 정의합니다. 공백 제한은 "collapse"로 설정됩니다. 이는 XML 프로세서가 모든 공백 문자(개행, 캐리지 리턴, 공백 및 탭이 공백으로 대체되고, 선행 및 후행 공백이 제거되고, 여러 연속 공백이 삭제됨)를 의미합니다. 공백으로 줄입니다):

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


길이 제한

요소의 값 길이를 제한하려면 length, maxLength 및 minLength 제한을 사용해야 합니다.

이 예는 한정자가 있는 "password"라는 요소를 정의합니다. 값은 정확히 8자여야 합니다.

<xs:element name="password">
<xs:simpleType>
​​ <xs:restriction base="xs:string">
​​​​ <xs:길이 값="8"/>
​​ </xs:제한>
</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:제한>
</xs:단순 유형>
</xs:요소>


데이터 유형 한정

QualificationDescription
enumeration허용되는 값 목록 정의
fractionDigits허용되는 최대 소수 자릿수를 정의합니다. 0보다 크거나 같아야 합니다.
length은 허용되는 문자 또는 목록 항목의 정확한 수를 정의합니다. 0보다 크거나 같아야 합니다.
maxExclusive은 값의 상한을 정의합니다. 허용되는 값은 이 값보다 작아야 합니다.
maxInclusive은 값의 상한을 정의합니다. 허용되는 값은 이 값보다 작거나 같아야 합니다.
maxLength 허용되는 최대 문자 수 또는 목록 항목 수를 정의합니다. 0보다 크거나 같아야 합니다.
minExclusive값의 하한을 정의합니다. 허용되는 값은 이 값보다 커야 합니다.
minInclusive은 값의 하한을 정의합니다. 허용되는 값은 이 값보다 크거나 같아야 합니다.
minLength 허용되는 최소 문자 수 또는 목록 항목 수를 정의합니다. 0보다 크거나 같아야 합니다.
pattern은 허용되는 문자의 정확한 순서를 정의합니다.
totalDigits은 아라비아 숫자에 허용되는 정확한 자릿수를 정의합니다. 0보다 커야 합니다.
whiteSpace 공백 문자(줄 바꿈, 캐리지 리턴, 공백 및 탭)를 처리하는 방법을 정의합니다.