특성을 선언합니다.
<attribute
default = string
fixed = string
form = (qualified | unqualified)
id = ID
name = NCName
ref = QName
type = QName
use = (optional | prohibited | required): optional
{any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleType?))
</attribute>
특성
default
특성은 기본값을 가지며 XML 문서 내에서 인스턴스에 특성을 지정하지 않으면 기본값이 사용됩니다. 인스턴스 문서에 특성이 없더라도 post-schema-validation infoset에는 특성이 표시되어야 합니다. 인스턴스 문서에 실제로 특성이 없더라도 스키마 프로세서는 특성이 기본값으로 지정된 것처럼 작동해야 합니다. Default 및 fixed 특성을 둘 다 지정할 수 없습니다.선택적 항목입니다.
fixed
특성은 고정 값을 가지며 인스턴스 문서에 특성이 있을 경우에는 그 값이 고정 값과 일치해야 하고 인스턴스 문서에 특성이 없을 경우에는 입력된 값을 사용하게 됩니다. Default 및 fixed 특성을 둘 다 지정할 수 없습니다.선택적 항목입니다.
form
특성의 형식입니다. 기본값은 특성을 포함하는 schema 요소의 attributeFormDefault 특성 값입니다. 값은 "qualified" 또는 "unqualified" 문자열 중 하나를 사용해야 합니다.값이 unqualified인 경우 이 특성을 네임스페이스 접두사로 한정할 필요가 없으며 로컬 이름인 특성의 NCName(No-Colon-Name)과 비교됩니다.
값이 qualified인 경우 스키마의 targetNamespace와 특성의 NCName을 조합하여 이 특성을 한정해야 합니다.
선택적 항목입니다.
id
이 요소의 ID입니다. id 값은 ID 형식이어야 하며 이 요소를 포함하는 문서 내에서 고유한 값이어야 합니다.선택적 항목입니다.
name
특성 이름입니다. 이 이름은 XML 네임스페이스 사양에 정의된 대로 NCName이어야 합니다. 포함하는 요소가 schema 요소이면 필요한 요소입니다. Name 및 ref 특성을 둘 다 지정할 수 없습니다.스키마에 대해 XML 문서의 유효성을 검사하면 문서의 각 특성은 스키마에 있는 attribute 요소에 대해 유효성이 검사됩니다.
선택적 항목입니다.
ref
이 스키마 또는 지정된 네임스페이스에 나타난 다른 스키마에서 선언된 특성의 이름입니다. ref 값은 정규화된 이름(QName)이어야 합니다. 형식에는 네임스페이스 접두사가 포함될 수 있습니다. Name 및 ref 특성을 둘 다 지정할 수 없습니다. ref 특성이 있으면 simpleType 요소, form 및 type을 지정할 수 없습니다.복합 형식 내에서 기존 특성 정의를 사용하여 특성을 선언하려면 ref 특성을 사용하여 기존 특성 정의를 지정합니다.
<xs:attribute name="mybaseattribute"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:maxInclusive value="1000"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:complexType name="myComplexType"> <xs:attribute ref="mybaseattribute"/> </xs:complexType>
선택적 항목입니다.
type
이 스키마 또는 지정된 네임스페이스에 나타난 다른 스키마에 정의되어 있는 기본 제공 데이터 형식이나 단순 형식의 이름입니다. 형식은 QName이어야 합니다. 형식에는 네임스페이스 접두사가 포함될 수 있습니다. type 특성은 내용에 simpleType 요소가 없을 때만 사용할 수 있습니다.선택적 항목입니다.
use
특성을 사용하는 방법을 나타내는 표시기입니다.이 특성에는 다음과 같은 값을 사용해야 합니다.
optional
특성은 선택적 요소이며 모든 값을 사용할 수 있습니다. 이것은 기본값입니다. 다음 두 줄은 동일한 의미를 갖습니다.
<xs:attribute name="myattr" type="xs:string"/> <xs:attribute name="myattr" type="xs:string" use="optional"/>
prohibited
특성을 사용할 수 없습니다. 이 특성은 다른 복합 형식의 제한에서 사용되어 기존 특성을 사용할 수 없도록 합니다.
<xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>
required
이 특성은 한 번만 표시해야 합니다.
또한 필요한 특성이며 특성의 형식 정의에서 허용하는 모든 값을 포함할 수 있습니다.
<xs:attribute name="myattr" type="xs:string" use="required"/>
이 특성은 다른 복합 형식의 제한 또는 확장에서 사용되어 지정한 특성이 반드시 사용되도록 합니다.
<xs:complexType name="A"> <xs:attribute name="x" type="xs:NCName"/> <xs:attribute name="y" type="xs:QName"/> </xs:complexType>
<xs:complexType name="B"> <xs:complexContent> <xs:restriction base="xs:A"> <xs:attribute name="x" use="required" /> <xs:attribute name="y" use="prohibited"/> </xs:restriction> </xs:complexContent> </xs:complexType>
특성을 전역적으로 선언하면(부모 요소가 schema일 경우) 이 특성은 스키마에 있는 모든 요소의 필요한 요소가 됩니다.
선택적 항목입니다.
요소 정보
발생 횟수 |
schema 요소에서 한 번 정의되고 복합 형식이나 특성 그룹에서는 여러 번 참조됩니다. |
부모 요소 |
attributeGroup, schema, complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent) |
내용 |
주의
특성 선언은 이름을 형식 정의와 연결하며 가능한 형식 정의로는 기본 제공 데이터 형식 또는 단순 형식이 있습니다.
특성 선언은 전역 범위를 갖는 schema, complexType 및 attributeGroup 요소의 자식 요소로 또는 복합 형식 정의 내에서 사용할 수 있습니다. 복합 형식의 경우 특성 선언은 로컬 선언이나 전역 범위를 갖는 특성에 대한 참조로 사용할 수 있습니다.
또한 attributeGroup 및 complexType 요소 내에서 참조로 특성을 표시할 수 있습니다.
예제
다음 예제에서는 기본값 test를 가진 기본 제공 형식에 대한 참조로 특성을 선언하고 complexType 요소에서 이 특성을 사용합니다.
<xs:attribute name="mybaseattribute" type="xs:string" default="test" />
<xs:complexType name="myComplexType">
<xs:attribute ref="mybaseattribute"/>
</xs:complexType>
다음 예제에서는 required 특성을 complexType 요소 내에서 직접 선언합니다.
<xs:complexType name="myComplexType">
<xs:attribute name="mybaseattribute" type="xs:string" use="required"/>
</xs:complexType>
다음 예제에서는 특성을 선언할 때 제한된 기본 제공 정수 형식에서 파생시켜 값의 범위를 "60"
이상 "95"
이하로 제한합니다.
<xs:attribute name="myHolidayLocationTemperature">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="60"/>
<xs:maxInclusive value="95"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
다음 예제에서는 10진수 값을 포함하는 목록으로 특성을 선언합니다. 따라서 shoeSizes="10.5 9 8 11"과 같은 특성에 10.5, 9, 8 및 11 등의 값 목록이 포함될 수 있습니다.
<xs:simpleType name="Sizes">
<xs:restriction base="xs:decimal">
<xs:enumeration value="10.5"/>
<xs:enumeration value="9"/>
<xs:enumeration value="8"/>
<xs:enumeration value="11"/>
</xs:restriction>
</xs:simpleType>
<xs:attribute name="shoeSizes">
<xs:simpleType>
<xs:list itemType="Sizes"/>
</xs:simpleType>
</xs:attribute>
관련 자료
자세한 내용은 www.w3.org/TR/2001/REC-xmlschema-1-20010502/\#element-all에 있는 Structures Recommendation을 참조하십시오.