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>