2.5. 복잡한 데이터 유형 정의


초록

XML 스키마는 단순 데이터 형식에서 복잡한 데이터 구조를 구축하기 위한 유연하고 강력한 메커니즘을 제공합니다. 요소 및 속성 시퀀스를 만들어 데이터 구조를 만들 수 있습니다.You can create data structures by creating a sequence of elements and attributes. 정의된 유형을 확장하여 더욱 복잡한 유형을 생성할 수도 있습니다.

복잡한 데이터 구조를 빌드하는 것 외에도 열거된 형식, 특정 범위의 값이 있는 데이터 형식 또는 기본 형식을 확장하거나 제한하여 특정 패턴을 따라야 하는 데이터 형식도 설명할 수 있습니다.In addition to building complex data structures, you can also describe specialized types such as enumerated types, data types that have a specific range of values, or data types that need to follow certain patterns by either extending or restricting the primitive types.

2.5.1. 데이터 구조 정의

2.5.1.1. 개요

XML 스키마에서 데이터 필드 컬렉션인 데이터 단위는 complexType 요소를 사용하여 정의됩니다. 복잡한 유형을 지정하려면 다음 세 가지 정보가 필요합니다.

  1. 정의된 형식의 이름은 complexType 요소의 name 특성에 지정됩니다.
  2. complexType 의 첫 번째 자식 요소는 유선에 배치될 때 구조 필드의 동작을 설명합니다. “복잡한 유형 종류” 을 참조하십시오.
  3. 정의된 구조의 각 필드는 complexType 요소 의 손자인 요소에 정의됩니다. “구조의 부분 정의” 을 참조하십시오.

예를 들어 예 2.3. “간단한 구조” 에 표시된 구조는 두 개의 요소가 있는 복잡한 유형으로 XML 스키마로 정의됩니다.

예 2.3. 간단한 구조

struct personalInfo
{
  string name;
  int age;
};

예 2.4. “복잡한 유형” 예 2.3. “간단한 구조” 에 정의된 구조의 사용 가능한 XML 스키마 매핑을 보여 줍니다. 예 2.4. “복잡한 유형” 로 정의된 구조는 nameage 의 두 가지 요소를 포함하는 메시지를 생성합니다.

.

예 2.4. 복잡한 유형

<complexType name="personalInfo">
  <sequence>
    <element name="name" type="xsd:string" />
    <element name="age" type="xsd:int" />
  </sequence>
</complexType>

2.5.1.2. 복잡한 유형 종류

XML 스키마에는 XML 문서를 표시하고 유선으로 전달될 때 복잡한 형식의 필드를 구성하는 방법을 설명하는 세 가지 방법이 있습니다. complexType 요소의 첫 번째 자식 요소는 사용 중인 복잡한 유형을 결정합니다. 표 2.1. “복잡한 유형 설명자 요소” 복잡한 유형 동작을 정의하는 데 사용되는 요소를 보여줍니다.

표 2.1. 복잡한 유형 설명자 요소
요소복잡한 유형 동작

순서

모든 복잡한 유형의 필드가 있을 수 있으며 유형 정의에 지정된 순서에 있어야 합니다.

all

모든 복잡한 유형의 필드는 존재할 수 있지만 임의의 순서로 있을 수 있습니다.

choice

구조의 요소 중 하나만 메시지에 배치할 수 있습니다.

예 2.5. “간단한 복잡한 선택 유형” 에 표시된 대로 선택 요소를 사용하여 구조가 정의된 경우 name 요소 또는 age 요소와 함께 메시지를 생성합니다.

예 2.5. 간단한 복잡한 선택 유형

<complexType name="personalInfo">
  <choice>
    <element name="name" type="xsd:string"/>
    <element name="age" type="xsd:int"/>
  </choice>
</complexType>

2.5.1.3. 구조의 부분 정의

요소 요소 를 사용하여 구조를 구성하는 데이터 필드를 정의합니다. 모든 complexType 요소에는 하나 이상의 요소 가 포함되어야 합니다. complexType 요소 의 각 요소는 정의된 데이터 구조의 필드를 나타냅니다.

데이터 구조의 필드를 완전히 설명하기 위해 요소 요소에 는 다음 두 가지 필수 특성이 있습니다.

  • name 속성은 데이터 필드의 이름을 지정하고 정의된 복잡한 유형 내에서 고유해야 합니다.
  • type 속성은 필드에 저장된 데이터 유형을 지정합니다. 형식은 XML Schema 단순 유형 중 하나이거나 계약에 정의된 이름이 지정된 복잡한 유형일 수 있습니다.

nametype 외에도요소 요소에minOcurrsmaxOccurs 라는 두 가지 일반적으로 사용되는 선택적 속성이 있습니다. 이러한 속성은 구조에서 필드가 발생하는 횟수에 바인딩됩니다. 기본적으로 각 필드는 복잡한 유형에서 한 번만 수행됩니다. 이러한 특성을 사용하여 필드에 필요한 횟수 또는 구조에 나타날 수 있는 횟수를 변경할 수 있습니다. 예를 들어 예 2.6. “발생 제약 조건을 사용하는 간단한 복합 유형” 과 같이 최소 세 번 이상 발생해야 하는 필드인 previous Job을 정의할 수 있으며, 7번 이상은 지정할 수 없습니다.

예 2.6. 발생 제약 조건을 사용하는 간단한 복합 유형

<complexType name="personalInfo">
  <all>
    <element name="name" type="xsd:string"/>
    <element name="age" type="xsd:int"/>
    <element name="previousJobs" type="xsd:string:
             minOccurs="3" maxOccurs="7"/>
  </all>
</complexType>

minOccurs 를 사용하면 예 2.7. “minOccurs를 0으로 설정한 간단한 복합 유형” 에 표시된 대로 minOccurs 를 0으로 설정하여 age 필드를 선택적으로 만들 수도 있습니다. 이 경우 사용 기간 을 생략할 수 있으며 데이터는 계속 유효합니다.

예 2.7. minOccurs를 0으로 설정한 간단한 복합 유형

<complexType name="personalInfo">
  <choice>
    <element name="name" type="xsd:string"/>
    <element name="age" type="xsd:int" minOccurs="0"/>
  </choice>
</complexType>

2.5.1.4. 속성 정의

XML 문서에서 특성은 요소의 태그에 포함됩니다. 예를 들어 아래 코드의 complexType 요소에서 name 은 특성입니다. 복잡한 유형의 특성을 지정하려면 complexType 요소 정의에 특성 요소를 정의합니다. 특성 요소는 모든 , 시퀀스 또는 선택 요소 이후에만 나타날 수 있습니다.An attribute element can appear only after the all,sequence, or choice element. 각 복잡한 유형의 특성에 대해 하나의 특성 요소를 지정합니다. 모든 특성 요소는 complexType 요소의 직접 자식이어야 합니다.

예 2.8. 속성이 있는 복합 유형

<complexType name="personalInfo">
  <all>
    <element name="name" type="xsd:string"/>
    <element name="previousJobs" type="xsd:string"
             minOccurs="3" maxOccurs="7"/>
  </all>
  <attribute name="age" type="xsd:int" use="required" />
</complexType>

이전 코드에서 특성 요소는 personalInfo 복잡한 형식에 age 속성이 있음을 지정합니다.In the previous code, the attribute element specifies that the personalInfo complex type has an age attribute. attribute 요소에는 다음과 같은 속성이 있습니다.

  • name - 특성을 식별하는 문자열을 지정하는 필수 특성입니다.
  • type - 필드에 저장된 데이터의 유형을 지정합니다. 형식은 XML Schema 단순 유형 중 하나일 수 있습니다.
  • 이 특성 갖는 데 복잡한 유형이 필요한지 여부를 지정하는 선택적 특성입니다. 유효한 값은 필수 또는 선택적 입니다. 기본값은 속성이 선택 사항입니다.

특성 요소에서 특성 의 기본값을 지정할 수 있는 선택적 default 특성을 지정할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.