..

Search

34) 파생된 자료형

파생된 타입


파생된 타입(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비트 정수를 표현함.

연습문제