값 제한조건은 표시할 수 있는 값에 한계를 정의하여 단순 유형을 세분화합니다.
메시지가 비즈니스 규칙을 따르게 하기 위해서는 요소가 취할 수 있는 값을 제한하는 것이 종종 유리합니다. 이 주제에서는 이를 기본으로 하는 모든 요소의 값을 제한하기 위해 단순 유형에 값 제한조건을 추가할 수 있는 방법에 대해 설명합니다.
여기서 논의되는 대부분의 값 제한조건은 XML 스키마 facet로 모델화되며 단순 유형과 연관이 있습니다. 그러나, 요소에 대해 디폴트 값 및 고정 값을 정의할 수 있으며 이 값은 요소 자체에 연관됩니다.
입력 메시지에 속성이 누락되어 있으면 디폴트 값이 지정됩니다.
디폴트 값 제한조건은 요소 자체와 연관되므로 상속될 수 없음을 참고하십시오.
입력 메시지에 속성이 있으면 고정된 값이 지정되어야 합니다. 입력 메시지에 속성이 누락되어 있으면 고정된 값이 지정됩니다.
고정 값 제한조건은 요소 자체와 연관되므로 상속될 수 없습니다.
길이 제한조건은 xsd:hexBinary, xsd:base64Binary 또는 xsd:string에서 도출된 단순 유형에 적용될 수 있습니다(xsd:normalisedString 같은 내장 스키마 유형 포함).
길이 제한조건은 상위(ancestor) 유형으로부터 상속되며 단순 유형에 정의된 모든 길이 제한조건은 상위 유형 중 하나에 의해 부과된 제한조건을 완화해서는 안됩니다. 예를 들면, 'shortString' 유형(Max Length=10)으로부터 'longString' 유형(Max Length=100)을 도출하는 것은 올바르지 않습니다.
범위 제한조건은 상위(ancestor) 유형으로부터 상속되며 단순 유형에 정의된 모든 범위 제한조건은 상위 유형 중 하나에 의해 부과된 제한조건을 완화해서는 안됩니다. 예를 들면, 'smallNumber' 유형(Max Inclusive=10)으로부터 'largeNumber' 유형(Max Inclusive=100)을 도출하는 것은 올바르지 않습니다.
메시지 모델에서는 제외 제한조건을 비정수 유형(float, decimal, double, DateTime 등)에 적용할 수 없습니다.
나열 제한조건은 상위(ancestor) 유형으로부터 상속되며 단순 유형에 정의된 모든 나열 제한조건은 상위 유형 중 하나에 의해 부과된 제한조건을 완화해서는 안됩니다. 예를 들면, 'MonoColours' 유형('검은색' 및 '흰색'만 나열됨)에서 'AllColours'(모든 무지개색이 나열됨) 유형을 도출하는 것은 올바르지 않습니다.
정밀도 제한조건은 상위(ancestor) 유형으로부터 상속되며 단순 유형에 정의된 모든 정밀도 제한조건은 상위 유형 중 하나에 의해 부과된 제한조건을 완화해서는 안됩니다. 예를 들면, 'notVeryPrecise' 유형(Fraction Digits=1)으로부터 'veryPrecise' 유형(Fraction Digits=10)을 도출하는 것은 올바르지 않습니다.
모든 값 제한조건에서와 같이, 단순 유형은 이것이 기본으로 하는 단순 유형으로부터 패턴 제한조건을 상속할 수 있습니다. 이 경우, 단순 유형 자체에서 제공하는 세트는 물론 각 상위 유형에서 제공하는 패턴 제한조건 세트도 만족해야 합니다. 즉, 유형 계층의 각 레벨에서 제공하는 패턴 제한조건 세트는 Boolean AND를 사용하여 결합됩니다.
패턴 제한조건은 xsd:string에서 도출된 단순 유형에만 적용될 수 있습니다.