XSD 속성
XSD 속성(attribute)
XSD에서 단순 타입(simple type) 요소는 속성을 가질 수 없습니다.
만약에 단순 타입의 요소가 속성을 가지게 되면, 그 요소는 복합 타입(complex type)이 됩니다.
하지만 속성(attribute) 그 자체는 언제나 단순 타입(simple type)으로 선언됩니다.
속성의 선언
XSD에서 속성을 선언하는 문법은 다음과 같습니다.
문법
<xs:attribute name="속성이름" type="속성타입"/>
속성의 타입에는 XSD에서 제공하는 다양한 기본 타입과 파생된 타입을 사용할 수 있습니다.
다음 예제는 속성을 XSD에서 어떻게 선언하는지를 보여주는 예제입니다.
XML 예제
<priority rating="3">middle</priority>
XSD 예제
<xs:attribute name="rating" type="xs:integer"/>
속성의 기본값 선언
요소와 마찬가지로 속성도 default 속성을 이용하여 기본값을 명시할 수 있습니다.
이렇게 명시된 기본값은 값이 명시되지 않는 경우에 자동으로 설정됩니다.
다음 예제에서 division 속성값이 직접 명시되지 않으면, 기본값인 "man"으로 자동 설정됩니다.
XSD 예제
<xs:attribute name="division" type="xs:string" default="man"/>
속성의 고정값 선언
요소와 마찬가지로 속성도 fixed 속성을 사용하여 고정값을 명시할 수 있습니다.
이렇게 고정값을 명시하면 자동으로 그 값이 부여되며, 사용자가 임의로 값을 변경할 수 없게 됩니다.
다음 예제에서 division 속성값은 무조건 "woman"으로 설정됩니다.
XSD 예제
<xs:attribute name="division" type="xs:string" fixed="woman"/>
필수 속성의 선언
속성은 기본적으로 필수가 아닙니다.
하지만 use 속성값을 required로 설정하면 해당 속성을 필수 속성으로 선언할 수 있습니다.
이렇게 선언된 필수 속성은 요소의 선언 시 반드시 같이 선언되어야 합니다.
만약 요소의 선언 시 필수 속성이 함께 선언되지 않으면, 해당 XML 문서는 유효하지 않은 문서로 간주합니다.
다음 예제에서 division 속성은 반드시 선언되어야만 합니다.
XSD 예제
<xs:attribute name="division" type="xs:string" use="required"/>