내보내기(0) 인쇄
모두 확장

<xdr:ElementType> 요소

XDR(XML-Data Reduced) 스키마 Schema 요소 내에서 사용할 요소 형식을 정의합니다.

<ElementType
  content="{empty | textOnly | eltOnly | mixed}" 
  dt:type="datatype" 
  model="{open | closed}" 
  name="idref" 
  order="{one | seq | many}">

특성

content

내용이 비어 있어야 하는지 여부를 나타내거나 텍스트, 요소 또는 이 둘을 포함할 수 있는지 여부를 나타내는 표시기입니다. 다음 값을 이 특성에 할당할 수 있습니다. content 특성의 기본값은 mixed입니다. content 특성을 mixed로 설정하면 order 특성에 many 값이 필요합니다.

empty

요소에 내용을 포함할 수 없습니다.

textOnly

요소에 텍스트만 포함할 수 있으며 요소는 포함할 수 없습니다. model 특성을 open으로 설정하면 요소에 텍스트 및 기타 명명되지 않은 요소를 포함할 수 있습니다.

eltOnly

요소에 지정된 요소만 포함할 수 있으며 텍스트를 포함할 수 없습니다.

mixed

요소에 명명된 요소와 텍스트를 혼합하여 포함할 수 있습니다. 기본값은 mixed입니다. content 특성 값이 mixed일 경우 자식 요소 수가 지정된 경계를 벗어나면 minOccursmaxOccurs 특성은 유효성 검사 오류를 트리거하지 않습니다.

참고

content="empty" 및 model="open"인 요소는 허용되지 않습니다.

예제

설명

다음 예제에서는 값이 서로 다른 content 특성의 사용을 보여 줍니다.

<ElementType name="x" content="empty"/>
<ElementType name="x" content="textOnly"/>
<ElementType name="x" content="eltOnly">
  <element type="y"/>
</ElementType>
<ElementType name="x" content="mixed">
  <element type="q"/>
  <element type="r"/>
</ElementType>

레거시 코드 예제

다음 예제에서는 해당 DTD(문서 형식 정의)에 대한 content 특성을 보여 줍니다.

empty: <!ELEMENT x EMPTY>
textOnly: <!ELEMENT x (#PCDATA)>
eltOnly: <!ELEMENT x y>
mixed: <!ELEMENT x (#PCDATA | q | r)*>

dt:type

요소의 데이터 형식입니다. XDR 스키마 데이터 형식 참조에 유효한 데이터 형식이 정의되어 있습니다.

model

내용에 내용 모델에 정의된 항목만 포함할 수 있는지 여부를 나타내는 표시기입니다. 기본값은 open입니다.

<ElementType name="x" model="open"/>

모델을 open으로 정의한 경우 요소에 내용 모델에서 명시적으로 선언하지 않은 추가 요소 또는 특성을 포함할 수 있습니다. 이 추가 태그는 같은 네임스페이스나 다른 네임스페이스에서 가져올 수 있습니다. 추가 태그가 같은 네임스페이스에 있을 경우 스키마에 이에 대한 해당 ElementType 또는 AttributeType 정의가 있어야 합니다.

모델을 closed로 정의한 경우 내용 모델에서 지정하지 않은 요소 및 혼합 내용을 요소에 포함할 수 없습니다. DTD에 closed 모델을 사용합니다.

name

요소의 이름을 나타내며 필요한 특성입니다. 이 요소 형식을 다른 요소 형식의 유효한 자식으로 선언할 경우 이 이름은 element 요소 내에서 지정됩니다.

<ElementType name="x">
</ElementType>

DTD에서 이에 해당하는 것은 다음과 같습니다.

<!ELEMENT x EMPTY>

order

요소가 표시되는 방식을 나타내는 표시기입니다. 이 표시기에는 다음 값을 사용할 수 있습니다.

one

요소 집합에서 하나만 허용합니다. one 특성을 지정한 경우 문서에서 올바르게 유효성 검사를 수행하려면 ElementTypemodel 특성을 closed로 지정해야 합니다.

seq

지정된 시퀀스에 요소를 표시해야 합니다.

many

이 요소는 순서에 상관없이 나타날 수도 있고 나타나지 않을 수도 있습니다. order 특성으로 many를 지정할 경우 유효성을 검사하는 동안 maxOccurs 값은 무시됩니다.

seq 값에 유효한 시퀀스를 지정해야 합니다. 예를 들어, x1,y1 또는 x2,y2와 같이 유효한 특정 시퀀스일 경우 이를 지정하는 데 사용할 수 있으며 유효한 다른 조합은 가능하지 않습니다. seq 값은 DTD의 괄호와 같은 역할을 합니다. 기본값은 seq입니다.

다음 예제에서는 one 설정을 보여 줍니다. order 특성으로 one을 지정한 경우 model 특성 값이 closed이어야 합니다.

<ElementType name="z" content="eltOnly" order="one" model="closed">
<element type="x" minOccurs="1" maxOccurs="1"/>
<element type="y" minOccurs="1" maxOccurs="1"/>
</ElementType>

다음 예제에서는 seq 설정을 보여 줍니다.

<ElementType name="x" content="eltOnly" order="one" model="closed">
  <group order="seq" content="eltOnly" model="closed">
    <element type="x1"/>
    <element type="y1"/>
  </group>
  <group order="seq" content="eltOnly" model="closed">
    <element type="x2"/>
    <element type="y2"/>
  </group>
</ElementType>

다음 예제에서는 many 설정을 보여 줍니다.

<ElementType name="x" content="eltOnly" order="many" model="closed">
  <element type="q"/>
  <element type="r"/>
</ElementType>

order 특성을 many로 설정하면 유효성을 검사하는 동안 minOccursmaxOccurs 특성은 무시됩니다. minOccursmaxOccurs와 함께 order 특성의 many 설정을 사용하는 대신 seq 설정을 사용합니다. 예를 들어, order="seq"를 설정하는 다음 스키마를 살펴보십시오.

<?xml version="1.0"?>
<Schema name="SampleSchema" xmlns="urn:schemas-microsoft-com:xml-data"
    xmlns:dt="urn:schemas-microsoft-com:datatypes">
    <ElementType name="PublisherID" model="closed" dt:type="ID"
      content="textOnly">
    </ElementType>
    <ElementType name="PublisherName" model="closed" dt:type="string"
      content="textOnly">
    </ElementType>

    <ElementType name="Publisher" model="closed" content="eltOnly"
      order="many">
      <element type="PublisherID"/>
      <element type="PublisherName"/>
    </ElementType>

    <ElementType name="Book" model="closed" content="eltOnly"
      order="seq">
    <element type="Publisher" minOccurs="1" maxOccurs="1"/>
    </ElementType>  

</Schema>

이전 스키마에 대해 다음 XML 문서의 유효성을 검사하면 Publisher 요소 수가 지정된 maxOccurs 값인 1을 초과하므로 유효성 검사가 실패합니다. 그러나 order 값을 many로 설정하면 maxOccurs="1" 설정이 무시되기 때문에 유효성 검사가 제대로 실행되지 않습니다.

<?xml version='1.0'?>
<Book xmlns="x-schema:orderschema.xml" >

<Publisher>
    <PublisherID>P1</PublisherID>
    <PublisherName>GG&G</PublisherName>
</Publisher>
<Publisher>
    <PublisherID>P2</PublisherID>
    <PublisherName>North</PublisherName>
</Publisher>

</Book>

요소 정보

발생 횟수

제한 없음

부모 요소

스키마

자식 요소

attribute, AttributeType, datatype, description, element, group

요소 속성

태그 설명

Name="idref"

ElementTypeAttributeType 요소에는 이름이 있어야 합니다.

Model="open"

이 요소에서는 내용 모델에서 지정하지 않은 요소 또는 혼합 내용이 허용됩니다. 나중에 상속을 구현할 경우 특정 정의의 하위 클래스를 만들려면 이 설정을 open으로 지정해야 합니다.

Model="closed"

이 요소에서는 내용 모델에서 지정하지 않은 요소 또는 혼합 내용이 허용되지 않습니다.

content="empty"

요소에 아무 것도 포함할 수 없습니다.

content="textOnly"

요소에 텍스트만 포함할 수 있으며 요소는 포함할 수 없습니다. model="open"인 경우 요소에는 여전히 텍스트 및 기타 명명되지 않은 요소가 포함될 수 있습니다.

*

content="mixed"

요소에 명명된 요소와 섞인 텍스트를 혼합하여 포함할 수 있습니다. model="open"인 경우 요소에는 여전히 텍스트 및 기타 명명되지 않은 요소가 포함될 수 있습니다. order='many' 및 maxOccurs="*"를 의미합니다!

order='one'

요소 집합에서 하나만 허용합니다.

*

order='seq'

나열된 시퀀스에 요소가 표시되어야 함을 나타냅니다. x1,y1 또는 x2,y2는 사용할 수 있지만 다른 모든 조합은 사용할 수 없는 예제에서 볼 수 있듯이 이는 요소 목록의 기본값과 비슷하지만 시퀀스를 그룹화하려면 반드시 필요합니다. DTD의 괄호와 같은 역할을 합니다.

order='many'

이 요소는 순서에 상관없이 나타날 수도 있고 나타나지 않을 수도 있습니다.

dt:type=datatype

요소에 정수를 포함하도록 지정합니다. 기본 데이터 형식 목록은 XDR 스키마 데이터 형식 참조를 참조하십시오.

주의

"요소 형식"이라는 용어는 이름을 공유하는 모든 요소가 이 요소 형식의 인스턴스인 경우의 요소 형식을 참조합니다. 요소 형식은 스키마에서 선언되며 요소는 문서에서 발생합니다. 요소 형식은 ElementType 요소 형식을 사용하여 선언합니다.

예제

<ElementType name="x">
  <!-- element content declarations go here -->
</ElementType>

참고 항목

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft