메시지 모델 오브젝트: 유형 상속
XML 스키마 언어를 사용하면 유형 정의가 다른 유형 정의를 기반으로 할 수 있습니다. 이러한 방식으로, 유형의 계층을 구성할 수 있습니다.
이 토픽은 유형 상속의 개념을 파악하며, 대체와 관련된 몇 가지 중요한 사항을 강조합니다.
XML 스키마 유형 상속에 대한 전체 설명은 World Wide Web Consortium (W3C) 웹 사이트 또는 XML 스키마에 대한 다양한 서적에서 찾을 수 있습니다.
제한 및 확장
도출되는 유형의 요소가 기본 유형의 요소보다 더 작은 범위의 올바른 값(또는 올바른 유형 멤버)을 갖는 경우 유형은 기본 유형의 제한입니다.
예를 들어 복합 유형에 대한 제한은 그의 유형 멤버 중 하나의 발생 수를 줄일 수 있거나, 해당 유형 멤버를 완전히 생략할 수 있습니다.
마찬가지로, 단순 유형의 제한은 최대값 포함 패싯 값을 더 낮추거나 최소값 포함 패싯 값을 올릴 수 있습니다.
도출되는 유형의 요소가 기본 유형의 요소보다 더 넓은 범위의 올바른 값(또는 올바른 유형 멤버)을 갖는 경우 유형은 기본 유형의 확장입니다.
예를 들어, 복합 유형의 확장은 기본 유형에 존재하지 않았던 유형 멤버를 추가하거나 유형 멤버가 반복하도록 허용할 수 있습니다.
비슷하게, 단순 유형의 확장은 항상 단순 유형을 기반으로 하는 복합 유형이어야 합니다. 올바른 값의 범위를 넓혀서 단순 유형을 확장할 수 없습니다.
특별한 규칙이 단순 유형의 파생에 적용됩니다. 단순 유형은 다른 단순 유형을 확장할 수 없습니다. 이것은 단순 유형이 부과하는 제한이 그로부터 다른 단순 유형을 도출하여 제거될 수 있게 합니다.
그러나 복합 유형은 단순 유형을 확장할 수 있습니다. 이것은 단순 유형의 올바른 값의 범위에 영향을 주지 않지만, 속성이 추가되도록 허용합니다. 단순 유형 확장 결과는 항상 0개 이상의 속성을 포함하는 복합 유형입니다.
유형 상속 제어
복합 유형의 최종 속성은 다음 효과를 갖는 세 값을 사용할 수 있습니다.
- restriction: 제한에 의해 이 유형에서 다른 복합 유형을 도출하는 것은 올바르지 않습니다.
- extension: 확장에 의해 이 유형에서 다른 복합 유형을 도출하는 것은 올바르지 않습니다.
- all: 확장 또는 제한에 의해 이 유형에서 다른 복합 유형을 도출하는 것은 올바르지 않습니다.
유형 상속 및 대체
XML 스키마는 두 가지 대체 메커니즘을 제공하는데, 둘 다 유형 상속 정보를 사용하여 대체를 허용하거나 허용하지 않습니다.
요소 대체는 대체 그룹에 의해 제어되며, 요소 대체는 요소 자체나 요소의 유형에서 설정하여 확장 및 제한이 차단되거나 허용될 수 있습니다.
유형 대체는 요소의 xsi:type 속성을 사용하여 요소의 유형이 인스턴스 문서 내에서 정의되도록 허용함으로써, 요소가 부분적으로 구문 분석되었을 때까지 요소의 실제 유형을 알 수 없습니다. 이 메커니즘은 포함된 유형의 파생 메소드에 근거하여 차단되거나 허용될 수 있습니다.