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에 대한 더 많은 정보를 알 수 있습니다.