파생된 타입
파생된 타입(derived datatype)
파생된 타입이란 기본 타입으로부터 파생되어 생성된 타입을 의미합니다.
파생된 타입을 사용할 때에는 기본 타입과 마찬가지로 반드시 네임스페이스 접두사를 붙여야 합니다.
XSD 예제
<xs:element name="player" type="xs:normalizedString"/>
정규화된 문자열(normalizedString)
정규화된 문자열 타입은 기본 타입인 문자열(string) 타입으로부터 파생된 타입입니다.
이 타입은 기본 타입인 문자열 타입과 같이 문자를 포함할 수 있습니다.
하지만 XML 프로세서가 줄 바꿈 문자(line feed), 개행 복귀 문자(carriage return), 탭 문자(tab)를 제거할 것입니다.
XSD 예제
<xs:element name="student" type="xs:normalizedString"/>
위의 XSD 예제에서 정의한 요소는 XML 문서에서 다음과 같이 표현될 수 있습니다.
XML 예제
<student>홍 길 동 </student>
위의 예제에서 XML 프로세서는 탭 문자를 하나의 띄어쓰기로 대체할 것입니다.
화면
홍 길 동
토큰(token)
토큰 타입은 기본 타입인 문자열(string) 타입으로부터 파생된 타입입니다.
이 타입은 기본 타입인 문자열 타입과 같이 문자를 포함할 수 있습니다.
하지만 XML 프로세서가 줄 바꿈 문자(line feed), 개행 복귀 문자(carriage return), 탭 문자(tab), 문자열 앞뒤의 공백, 여러 개의 띄어쓰기를 모두 제거할 것입니다.
XSD 예제
<xs:element name="student" type="xs:token"/>
위의 XSD 예제에서 정의한 요소는 XML 문서에서 다음과 같이 표현될 수 있습니다.
XML 예제
<student>홍 길 동 </student>
위의 예제에서 XML 프로세서는 탭 문자와 문자열 앞뒤의 공백, 그리고 여러 개의 띄어쓰기를 모두 제거할 것입니다.
화면
홍길동
정수(integer)
정수 타입은 기본 타입인 소수(decimal) 타입으로부터 파생된 타입입니다.
정수 타입은 소수 부분이 없는 정수를 나타낼 때 사용합니다.
XSD 예제
<xs:element name="answer" type="xs:integer"/>
위의 XSD 예제에서 정의한 요소는 XML 문서에서 다음과 같이 표현될 수 있습니다.
XML 예제
<answer>12</answer>
<answer>+12345</answer>
<answer>-123</answer>
XSD 파생된 타입
타입 | 설명 |
---|---|
normalizedString |
줄 바꾸기 문자(line feed), 개행 복귀 문자(carriage return), 탭 문자(tab)를 포함하지 않는 문자열을 표현함. |
token | 줄 바꾸기 문자(line feed), 개행 복귀 문자(carriage return), 탭 문자(tab), 문자열 앞뒤의 공백, 여러 개의 띄어쓰기를 포함하지 않는 문자열을 표현함. |
language | 유효한 언어 아이디를 포함하는 문자열을 표현함. |
NMTOKEN | NMTOKEN 속성 타입을 표현함. |
NMTOKENS | NMTOKENS 속성 타입을 표현함. |
Name | 유효한 XML 이름을 포함하는 문자열을 표현함. |
NCName | [Namespace in XML] 문법을 만족하는 NCName을 표현함. |
ID | XML에서 id 속성을 나타내는 문자열을 표현함. (XSD 속성값에만 사용함) |
IDREF | XML에서 IDREF 속성을 나타내는 문자열을 표현함. (XSD 속성값에만 사용함) |
IDREFS | 여러 개의 id 값을 참조함. |
ENTITY | 엔티티를 참조함. |
ENTITIES | 여러 개의 엔티티를 참조함. |
integer | 정수를 표현함. |
positiveInteger |
양의 정수를 표현함. (1, 2, ...) |
NonNegativeInteger |
0과 양의 정수를 표현함. (0, 1, 2, ...) |
negativeInteger |
음의 정수를 표현함. (-1, -2, ...) |
NonPositiveInteger |
0과 음의 정수를 표현함. (0, -1, -2, ...) |
long | 64비트 정수를 표현함. |
int | 32비트 정수를 표현함. |
short | 16비트 정수를 표현함. |
byte | 8비트 정수를 표현함. |
unsignedLong | 부호없는 64비트 정수를 표현함. |
unsignedInt | 부호없는 32비트 정수를 표현함. |
unsignedShort | 부호없는 16비트 정수를 표현함. |
unsignedByte | 부호없는 8비트 정수를 표현함. |