특성 집합과 요소 내용을 결정하는 복합 형식을 정의합니다.
<complexType
abstract = Boolean : false
block = (#all | List of (extension | restriction))
final = (#all | List of (extension | restriction))
id = ID
mixed = Boolean : false
name = NCName
{any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all |
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>
특성
abstract
인스턴스 문서에서 복합 형식을 사용할 수 있는지 여부를 나타내는 표시기입니다. 이 값이 true이면 해당 요소는 이 복합 형식을 직접 사용할 수 없고 이 복합 형식에서 파생된 복합 형식을 사용해야 합니다. 기본값은 false입니다.선택적 항목입니다.
block
파생 형식입니다. block 특성은 지정된 파생 형식을 가진 복합 형식이 현재 복합 형식 대신에 사용될 수 없도록 합니다. 이 값에는 #all이나 extension 또는 restriction의 하위 집합 목록이 포함될 수 있습니다. block 특성은 유효성 검사 중 인스턴스 문서가 schema-instance:type 특성을 사용하여 요소의 표준 형식을 재정의할 때만 사용할 수 있습니다. block 특성을 사용하면 요소에 지정된 원본 형식을 바꿀 때 확장 및/또는 제한으로 정의된 복합 형식을 선택할 수 없습니다.extension
확장에 의해 파생된 복합 형식을 이 복합 형식 대신 사용할 수 없도록 합니다.
restriction
제한에 의해 파생된 복합 형식을 이 복합 형식 대신 사용할 수 없도록 합니다.
#all
모든 파생된 복합 형식을 이 복합 형식 대신 사용할 수 없도록 합니다.
선택적 항목입니다.
final
파생 형식입니다. final 특성은 이 complexType 요소의 지정된 파생 형식을 사용할 수 없도록 합니다. 이 값에는 #all이나 extension 또는 restriction의 하위 집합 목록이 포함될 수 있습니다.extension
확장에 의한 파생을 막습니다.
restriction
제한에 의한 파생을 막습니다.
#all
확장 및 제한에 의한 파생을 모두 막습니다.
선택적 항목입니다.
id
이 요소의 ID입니다. id 값은 ID 형식이어야 하며 이 요소를 포함하는 문서 내에서 고유한 값이어야 합니다.선택적 항목입니다.
mixed
문자 데이터를 이 복합 형식의 자식 요소 사이에 표시할 수 있는지 여부를 나타내는 표시기입니다. 기본값은 false입니다.simpleContent 요소가 자식 요소이면 mixed 특성은 사용할 수 없습니다.
complexContent 요소가 자식 요소이면 complexContent 요소에 대한 mixed 특성으로 이 mixed 특성을 재정의할 수 있습니다.
선택적 항목입니다.
name
형식의 이름입니다. 이 이름은 XML 네임스페이스 사양에 정의된 대로 NCName(No-Colon-Name)이어야 합니다.포함하는 요소가 schema 요소이면 필요한 요소이고 그렇지 않으면 사용할 수 없습니다.
이름을 지정할 경우 모든 simpleType 및 complexType 요소에서 고유해야 합니다.
선택적 항목입니다.
요소 정보
발생 횟수 |
스키마 내에서는 제한이 없으며 요소 내에서는 한 번 발생합니다. |
부모 요소 |
|
내용 |
annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute |
주의
복합 형식은 기본적으로 특성 및 요소를 포함할 수 있는 요소에 대한 형식 정의입니다. 요소의 구조, 내용 및 특성을 정의하는 complexType 요소를 참조하는 type 특성으로 해당 요소를 선언할 수 있습니다. 요소는 해당 type 특성에 있는 simpleType을 참조할 수도 있습니다.
복합 형식에는 다음 중 사용할 수 있는 내용 형식을 지정하는 단 하나의 요소만 포함될 수 있습니다.
요소 | 설명 |
---|---|
simpleContent |
복합 형식에 문자 데이터나 simpleType이 내용으로 포함되며 요소는 포함될 수 없고 특성만 포함될 수 있습니다. |
complexContent |
복합 형식에 요소만 포함되거나 요소 내용이 포함되지 않습니다(비어 있음). |
group |
복합 형식에 참조된 그룹에서 정의된 요소가 포함됩니다. |
sequence |
복합 형식에 지정된 시퀀스에서 정의된 요소가 포함됩니다. |
choice |
복합 형식에서 choice 요소에 지정된 요소 중 하나를 사용할 수 있습니다. |
all |
복합 형식에서 모든 요소에 지정된 요소 중 하나 또는 모두를 한 번 표시할 수 있습니다. |
group, sequence, choice 또는 all을 자식 요소로 지정하면 다음 요소를 사용하여 complexType의 특성을 선택적으로 선언할 수 있습니다.
요소 | 설명 |
---|---|
attribute |
복합 형식에 지정한 특성이 포함됩니다. |
attributeGroup |
복합 형식에 참조되는 attributeGroup에서 정의된 특성이 포함됩니다. |
anyAttribute |
복합 형식에 지정한 네임스페이스에 있는 모든 특성이 포함될 수 있습니다. |
attribute 또는 attributeGroup 요소를 원하는 수만큼 사용할 수 있으며 anyAttribute의 인스턴스 하나를 사용할 수도 있습니다.
group, sequence, choice 또는 all을 지정하면 다음 순서대로 요소가 나타나야 합니다.
group | sequence | choice | all
attribute | attributeGroup
anyAttribute
예제
다음 예제에서는 복합 형식을 사용하는 특성 및 요소 선언을 가진 단순 형식(decimal)이 포함된 복합 형식을 보여 줍니다.
<xs:complexType name='internationalShoeSize'>
<xs:simpleContent>
<xs:extension base='xs:decimal'>
<xs:attribute name='sizing' type='xs:string' />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:element name='myShoeSize' type='internationalShoeSize'/>
다음 예제에서는 XML 문서 내에 있는 myShoeSize 요소의 인스턴스를 보여 줍니다.
<myShoeSize sizing='UK'>10.5</myShoeSize>
다음 예제에서는 요소 내에서 익명으로 정의된 complexType의 myShoeSize 요소를 보여 줍니다. name 특성이 없음에 주의하십시오.
<xs:element name='myShoeSize'>
<xs:complexType>
<xs:simpleContent>
<xs:extension base='xs:decimal'>
<xs:attribute name='sizing' type='xs:string' />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>