XSD 속성
모든 속성은 간단한 타입으로 선언됩니다。
속성이란 무엇인가요?
간단한 요소는 속성을 가질 수 없습니다. 어떤 요소가 속성을 가지고 있다면, 그 요소는 복합 타입으로 간주됩니다. 그러나 속성 자체는 항상 간단한 타입으로 선언됩니다。
속성을 선언하는 방법은 무엇인가요?
속성을 정의하는 문법은 다음과 같습니다:
<xs:attribute name="xxx" type="yyy"/>
이곳에서, xxx는 속성 이름이고, yyy는 속성 데이터 타입을 정의합니다. XML Schema는 많은 내장 데이터 타입을 가집니다。
가장 일반적인 类型은 다음과 같습니다:
- xs:string
- xs:decimal
- xs:integer
- xs:boolean
- xs:date
- xs:time
예제
이는 속성을 포함한 XML 요소입니다:
<lastname lang="EN">Smith</lastname>
이는 해당 속성 정의입니다:
<xs:attribute name="lang" type="xs:string"/>
속성의 기본 값과 고정 값
속성은 지정된 기본 값이나 고정 값을 가질 수 있습니다。
다른 값이 설정되지 않았을 때, 기본 값이 자동으로 요소에 할당됩니다。
아래 예제에서, 기본 값은 "EN"입니다:
<xs:attribute name="lang" type="xs:string" default="EN"/>
고정 값은 자동으로 요소에 할당되며, 다른 값을 설정할 수 없습니다。
아래 예제에서, 고정 값은 "EN"입니다:
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
선택 사항과 필수 사항 속성
기본적으로, 속성은 선택 사항입니다. 속성을 필수 사항으로 설정하려면 "use" 속성을 사용하세요:
<xs:attribute name="lang" type="xs:string" use="required"/>
내용 제한
XML 요소나 속성에 정의된 데이터 타입이 있을 때, 요소나 속성의 내용에 제한이 추가됩니다.
XML 요소의 타입이 "xs:date"이고, 내용이 "Hello World"와 같은 문자열이면, 요소는��인을 통과하지 않습니다.
XML 요소 및 속성에 자신의 제한을 추가할 수 있습니다. 이 제한은 facet(편집자 주: 다면체의 면, 제한면으로 번역할 수 있습니다)라고 합니다. 다음 장에서 facet에 대한 더 많은 정보를 알 수 있습니다.