XML Schema anyAttribute 요소
정의와 사용법
anyAttribute 요소는创作者가 schema가 정의하지 않은 속성을 통해 XML 문서를 확장할 수 있도록 합니다.
요소 정보
항목 | 설명 |
---|---|
출현 횟수 | 제한 없음 |
부모 요소 | complexType, restriction (simpleContent), extension (simpleContent), restriction (complexContent), extension (complexContent), attributeGroup |
내용 | annotation |
문법
<anyAttribute id=ID namespace=namespace processContents=lax|skip|strict 다른 속성 > (annotation?) </anyAttribute>
(? 기호는 이 요소가 anyAttribute 요소 내에서 0번 또는 1번 나타날 수 있음을 나타냅니다.)
속성
id
선택 사항. 이 요소의 독특한 ID를 정의합니다.
namespace
선택 사항. 사용할 수 있는 요소를 포함할 수 있는 이름 공간을 정의합니다. 이름 공간이 지정되지 않았다면 기본적으로 ##any가 됩니다. 이름 공간이 지정되면 다음 중 하나의 값이어야 합니다.
- ##any - 어떤 이름 공간에서 오는 요소도 나타날 수 있습니다. (기본 설정)
- ##other - 이 요소의 부모 요소의 목표 이름 공간 이외의 어떤 이름 공간에서 오는 요소도 나타날 수 있습니다.
- ##local - 이름 공간으로 지정되지 않은 요소가 나타날 수 있습니다.
- ##targetNamespace - 이 요소를 포함한 부모 요소의 목표 이름 공간에서 오는 요소가 나타날 수 있습니다.
- {URI 참조의 이름 공간, ##targetNamespace, ##local} 목록 - 이름 공간 목록으로 구분된 요소가 나타날 수 있습니다. 이 목록은 다음 내용을 포함할 수 있습니다: 이름 공간 ##targetNamespace와 ##local의 URI 참조.
processContents
선택 사항. any 요소가 지정한 요소에 따라 XML 문서의 검증을 어떻게 처리할지 가르치는 지시자입니다. processContents 속성이 지정되지 않았다면 기본적으로 strict가 됩니다. processContents가 지정되면 다음 중 하나의 값이어야 합니다.
- strict - XML 처리기는 필요한 이름 공간의 아키텍처를 가져오고, 이 이름 공간에서 오는 모든 요소를 검증해야 합니다. (기본 설정)
- lax - strict와 같지만, 아키텍처를 가져올 수 없더라도 오류가 발생하지 않습니다.
- skip - XML 처리기는 지정된 이름 공간에서 오는 모든 요소를 검증하지 않습니다.
다른 속성
선택 사항. non-schema 이름 공간을 가진 다른 어떤 속성도 정의합니다.
예제
아래의 예제는 "person" 요소에 대한 하나의 선언을 보여줍니다. <anyAttribute> 요소를 사용하여,创作者는 "person" 요소에 어떤 수의 속성을 추가할 수 있습니다:
<xs:element name="person"> <xs:complexType> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:anyAttribute/> </xs:complexType> </xs:element>