XML Schema element 요소
정의와 사용법
element 요소는 하나의 요소를 정의합니다.
요소 정보
출현 횟수 | 구조 내부에 정의된 요소의 수. |
부요소 | schema, choice, all, sequence |
내용 | simpleType, complexType, key, keyref, unique |
문법
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=비부정수 nillable=true|false abstract=true|false block=(#all|리스트의 (extension|restriction)) final=(#all|리스트의 (extension|restriction)) 모든 속성 > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? 기호는 element 요소에서 0번 또는 1번 등장할 수 있습니다. * 기호는 요소가 0번 또는 여러 번 등장할 수 있습니다.)
속성
id
선택 사항입니다. 요소의 독특한 ID를 정의합니다.
name
선택 사항입니다. 요소의 이름을 정의합니다. 부모 요소가 schema 요소라면, 이 속성은 필수입니다.
ref
선택 사항입니다. 다른 요소에 대한 참조입니다. ref 속성은 이름 공간 접두사를 포함할 수 있습니다. 부모 요소가 schema 요소라면, 이 속성을 사용하지 않습니다.
type
선택 사항입니다. 내장 데이터 타입의 이름을 정의하거나 simpleType 또는 complexType 요소의 이름을 정의합니다.
substitutionGroup
선택 사항입니다. 요소를 대체할 수 있는 요소의 이름을 정의합니다. 이 요소는 같은 타입이나 지정된 요소 타입에서 파생된 타입을 가지고 있어야 합니다.
부모 요소가 schema 요소가 아니라면, 이 속성을 사용할 수 없습니다.
default
선택 사항입니다. 요소에 기본 값을 정의합니다. 요소 내용이 간단한 타입이나 textOnly 일 때만 사용합니다.
fixed
선택 사항입니다. 요소에 고정 값을 정의합니다. 요소 내용이 간단한 타입이나 textOnly 일 때만 사용합니다.
form
선택 사항입니다. 요소의 형식을 정의합니다. 기본 값은 해당属性的 schema 요소의 elementFormDefault 속성의 값입니다. 이 값은 다음 문자열 중 하나여야 합니다: "qualified" 또는 "unqualified".
부모 요소가 schema 요소라면 이 속성을 사용할 수 없습니다.
- 이 값이 "unqualified"라면, 이름 공간 접두사로 구분하지 않아도 됩니다.
- 이 값이 "qualified"라면, 요소를 이름 공간 접두사로 구분해야 합니다.
maxOccurs
선택 사항입니다. 부모 요소에서 element 요소가 최대로 등장할 수 있는 횟수를 정의합니다. 이 값은 0 이상의 정수일 수 있습니다. 최대 횟수에 제한을 두지 않고 싶다면 문자열 "unbounded"를 사용하세요. 기본 값은 1입니다.
부모 요소가 schema 요소라면 이 속성을 사용할 수 없습니다.
minOccurs
선택사항입니다. element 요소가 부모 요소에서 최소로 등장할 수 있는 횟수를 규정합니다. 이 값은 0보다 크거나 같은 정수입니다. 기본값은 1입니다.
부모 요소가 schema 요소라면 이 속성을 사용할 수 없습니다.
nillable
선택사항입니다. 명시적인 NULL 값이 할당될 수 있는지를 지시합니다. 이 항목은 요소 내용에 적용되며 이 요소의 속성이 아닙니다. 기본값은 false입니다.
nillable이 true라면, 이 요소의 인스턴스가 nil 속성을 true로 설정할 수 있습니다. nil 속성은 인스턴스의 XML 스키마 네임스페이스의 일부로 정의됩니다.
예를 들어, 다음에서 단일 요소를 정의하며 nillable을 true로 설정합니다.
<xs:element name="myDate" type="xs:date" nillable="true"/>
다음에서 이 요소를 사용하며 명시적인 NULL 값( nil 속성이 true로 설정되어 있음)을 가집니다.
<myDate xsi:nil="true"></myDate>
abstract
선택사항입니다. 요소가 인스턴스 문서에서 사용될 수 있는지를 지시합니다. 값이 true면 요소가 인스턴스 문서에 등장할 수 없습니다. 그렇지 않으면, 이 요소의 Qualified Name (QName)을 포함하는 substitutionGroup 속성을 가진 다른 요소는 이 요소의 위치에 등장해야 합니다. 여러 요소가 이 요소를 substitutionGroup 속성에서 참조할 수 있습니다. 기본값은 false입니다.
block
선택사항입니다. 유도 타입입니다. block 속성이 특정 유도 타입을 가진 요소를 이 요소로 대체할 수 없도록 방지합니다. 이 값은 #all 또는 확장, 제한 또는 substitution의 하위집합을 포함하는 목록을 포함할 수 있습니다.:
- extension - 이 요소를 대체할 수 있는 확장된 유도 요소를 방지합니다.
- restriction - 이 요소를 대체할 수 있는 제한된 유도 요소를 방지합니다.
- substitution - 이 요소를 대체할 수 있는 유도 요소를 방지합니다.
- #all - 이 요소를 대체할 수 있는 모든 유도 요소를 방지합니다.
final
선택사항입니다. element 요소에 final 속성의 기본값을 설정합니다. 부모 요소가 schema 요소가 아니면 이 속성을 사용할 수 없습니다. 이 값은 #all 또는 확장 또는 제한의 하위집합을 포함하는 목록을 포함할 수 있습니다.:
- extension - 이 요소를 대체할 수 있는 확장 파생 요소를 방지합니다
- restriction - 이 요소를 대체할 수 있는 제한적인 파생 요소를 방지합니다
- #all - 이 요소를 대체할 수 있는 모든 파생 요소를 방지합니다
모든 속성
선택 사항입니다. non-schema 이름 공간을 가진 다른 모든 속성을 정의합니다。
인스턴스
예제 1
아래의 예제는 네 개의 간단한 요소를 포함한 schema를 포함하고 있는 예제입니다: "fname", "lname", "age", 그리고 "dateborn"이며, 타입은 string, nonNegativeInteger, 그리고 date입니다:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
예제 2
아래의 예제는 복잡한 타입 "note" 요소를 포함한 schema입니다. "note" 요소는 네 개의 간단한 요소를 포함합니다: "to", "from", "heading", 그리고 "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
예제 3
이 예제는 예제 2와 같지만, 이 예제에서는 ref 속성을 사용하여 요소 이름을 참조하는 것을 선택했습니다:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>