XML Schema attribute 요소

정의 및 사용법

attribute 요소는 속성을 정의합니다.

요소 정보

출현 횟수 schema 요소에서 한 번 정의합니다. 복잡한 유형이나 속성 그룹에서 여러 번 참조할 수 있습니다.
부모 요소 attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent)
내용 annotation, simpleType

문법

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
any attributes
>
(annotation?,(simpleType?))
</attribute>

(? 기호는 이 요소가 attribute 요소에 최대 1회 사용될 수 있음을 나타냅니다。)

속성

default

선택 사항. 속성의 기본 값을 정의합니다. default와 fixed 속성은 동시에 사용할 수 없습니다.

fixed

선택 사항. 속성의 고정된 값을 정의합니다. default와 fixed 속성은 동시에 사용할 수 없습니다.

form

선택 사항. 속성의 형식을 정의합니다. 기본 값은 속성을 포함하는 schema 요소의 attributeFormDefault 속성의 값입니다. 다음 값 중 하나로 설정할 수 있습니다:

  • "qualified" - 이름 공간 접두어와 이 속성의 이름 없는 이름 (NCName)을 통해 이 속성을 지정해야 합니다.
  • "unqualified" - 이 속성에 대해 이름 공간 접두어가 필요하지 않으며, 이 속성의 이름 없는 이름 (NCName)과 일치하지 않아야 합니다. 즉, 로컬 이름입니다.

id

선택 사항. 이 요소의 유일한 ID를 정의합니다.

name

선택 사항. 속성의 이름을 정의합니다. name과 ref 속성은 동시에 나타날 수 없습니다.

ref

선택 사항. 지정된 속성에 대한 참조를 정의합니다. name과 ref 속성은 동시에 나타날 수 없습니다. ref가 나타났을 때, simpleType 요소, form 및 type은 나타날 수 없습니다.

type

선택 사항. 내장된 데이터 유형이나 간단한 유형을 정의합니다. type 속성은 content에 simpleType 요소가 포함되지 않았을 때만 나타날 수 있습니다.

use

선택 사항. 이 속성을 사용하는 방법을 정의합니다. 아래의 값 중 하나를 설정할 수 있습니다:

  • 선택 사항 - 속성은 선택 사항이며 어떤 값도 가질 수 있습니다(기본값).
  • 제한 - 속성을 사용할 수 없습니다.
  • 필수 - 속성이 필요합니다.

any attributes

선택 사항. non-schema 이름 공간을 가진 다른 속성을 정의합니다.

인스턴스

예제 1

<xs:attribute name="code">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:attribute>

위의 예제는 "code" 속성이 제한이 있다고 나타냅니다. 받아들이는 유일한 값은 대문자 A부터 Z까지의 두 글자입니다.

예제 2

복잡한 유형에서 이미 있는 속성 정의를 사용하여 속성을 선언하려면 ref 속성을 사용하십시오:

<xs:attribute name="code">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
  <xs:attribute ref="code"/>
</xs:complexType>

예제 3

속성은 기본 값도 있을 수 있고, 지정된 고정 값도 있을 수 있습니다. 기타 값이 지정되지 않았을 때, 자동으로 속성에 기본 값을 부여합니다. 아래의 예제에서 기본 값은 "EN"입니다:

<xs:attribute name="lang" type="xs:string" default="EN"/>

기타 값이 지정되지 않았을 때, 자동으로 속성에 고정 값이 부여됩니다. 하지만 기본 값과 달리, 속성에 고정 값 이외의 다른 값을 지정하면 문서가 유효하지 않다고 검증됩니다. 아래의 예제에서 고정 값은 "EN"입니다:

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

예제 4

모든 속성은 기본적으로 선택적입니다. 속성을 선택적으로 명확히 지정하려면 "use" 속성을 사용하십시오:

<xs:attribute name="lang" type="xs:string" use="optional"/>

속성을 필수 속성으로 만드는 방법:

<xs:attribute name="lang" type="xs:string" use="required"/>