XML 스키마 생성

이 주제에서는 XML 스키마 생성 작동에 대해 다룹니다. 예를 들면, 메시지 정의 파일에서 생성된 스키마를 사용하여 WebSphere Message Broker에서 기록된 XML 인스턴스 문서의 유효성을 검증할 수 있습니다.

Lax 생성

Lax 생성은 컨텐츠 유효성 검증열기 또는 정의 열기로 설정하거나 작성비정렬 세트로 설정한 복합 유형이 생성된 스키마에서 렌더링되는 방식에 영향을 미칩니다. 그러한 스키마 유효성 검증은 MRM 구문 분석기 유효성 확인보다 더 광범위한 메시지 범위를 허용합니다.

열기 또는 정의 열기로 설정된 컨텐츠 유효성 검증이 설정됩니다.
복합 유형(전역 또는 익명)에는 anyType 유형의 단일 요소로 바꿀 수 있는 컨텐츠가 있습니다. 다음 생성 패턴은 컨텐츠 유효성 검증열기로 설정된 복합 유형에 사용됩니다.
<element name="xmlNameOfMessage">
	<complexType>
		<sequence>
			<any processContent="lax" 
			minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
</element>

컨텐츠 유효성 검증정의 열기로 설정하면 다음과 같은 패턴이 사용됩니다. (나열된 네임스페이스는 모두 포함하는 메시지 세트에 정의된 네임스페이스입니다.)

<element name="xmlNameOfMessage">
	<complexType>
		<sequence>
			<any processContent="lax" 
    			minOccurs="0" maxOccurs="unbounded"
 				namespace="http://www.ns1 http://www.ns2" />
		</sequence>
	</complexType>
</element>
비정렬 세트(UnorderedSet)로 설정된 작성
작성비정렬 세트로 설정되며, 비정렬 특성을 모방하기 위해 적절한 수만큼 선택이 삽입됩니다. 이것은 아래 표시됩니다.
<element name="xmlNameOfMessage">
	<complexType>
		<sequence maxOccurs="unbounded" 
		 minOccurs= "(minOccurs of original sequence) * 
          (items in original sequence)">
			<choice>
			      .. sequence contents ..
			</choice>
		</sequence>
	</complexType>
</element>

Strict 생성

Strict 생성은 컨텐츠 유효성 검증열기 또는 정의 열기로 설정하거나 작성비정렬 세트로 설정한 복합 유형이 생성된 스키마에서 렌더링되는 방식에 영향을 미칩니다. 그러한 스키마 유효성 검증은 MRM 구문 분석기 유효성 확인보다 더 좁은 메시지 범위를 허용합니다.

Strict는 디폴트 생성 옵션이며 모델 확장 없이 메시지 정의 파일에 보유된 스키마와 일치하는 스키마을 생성합니다.

열기/정의 열기로 설정된 컨텐츠 유효성 검증
복합 유형(전역 또는 익명)은 자체 정의 요소를 포함하는 기능을 유실하며 닫힙니다.
비정렬 세트(UnorderedSet)로 설정된 작성
복합 유형(전역 또는 익명)은 비정렬 기능을 유실하며 순서대로 정렬됩니다.

xsd:elements의 렌더링

스키마 생성 시 XML 물리적 형식이 지정되는 경우, Wire 형식 사용자 정의는 논리적 모델에 적용됩니다. 이 등록 정보는 모델의 요소가 XML Wire 형식의 메시지에 나타날 때 실제로 렌더링되는 방식을 제어합니다. 사용 가능한 다른 렌더 옵션은 XML 렌더링 옵션을 참조하십시오. 로컬 요소에 사용 가능한 여러 렌더 옵션과 관련하여 생성되는 사항을 보여주는 생성된 스키마 예가 아래에 있습니다. 이 예에서는 ID 속성 이름 또는 값 속성 이름 등록 정보의 네임스페이스를 수정하지 않으며, complexType1에 지정된 모든 요소는 스키마 내장 유형 문자열의 요소라고 가정합니다.

    <xsd:complexType name="complexType1">
        <xsd:sequence>
        	<!-- Local element Render = 'XMLElement' -->
            <xsd:element name="localElement1" type="xsd:string"/>
        	<!-- Local element Render = 'XMLElementAttrID' 
                                         ID Attribute Name = 'id' -->
            <xsd:element name="localElement2">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="id" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        	<!-- Local element Render = 'XMLElementAttrVal' 
                                        Val Attribute Name = 'val' -->
            <xsd:element name="localElement3">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="val" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        	<!-- Local element Render = 'XMLElementAttrIDVal' 
        	     ID Attribute Name = 'id' Val Attribute Name = 'val' -->
            <xsd:element name="localElement4">
                <xsd:complexType>
                    <xsd:simpleContent>
                        <xsd:extension base="xsd:string">
                            <xsd:attribute name="val" type="xsd:string"/>
                            <xsd:attribute name="id" type="xsd:string"/>
                        </xsd:extension>
                    </xsd:simpleContent>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
        	<!-- Local element Render = 'XMLAttribute' -->
        <xsd:attribute name="localElement5" type="xsd:string"/>
    </xsd:complexType>

xsd:attributes의 렌더링

xsd:Attributes의 렌더링은 지원되지 않습니다. 사용자는 속성 이름만을 변경할 수 있습니다.

임베드된 단순 유형 및 복합 요소

이것은 minOccursmaxOccurs가 둘다 0으로 설정된 요소로 메시지 정의 파일에서 모델화되며, 사전정의된 ComIbmMrm_xxx 유형 중 하나를 갖습니다. 스키마 생성 중, 그러한 요소의 유형은 각 ComIbmMrm_xxx 유형의 기본 유형으로 변경됩니다.

이 ComIbmMrm_xxx 유형 중 하나에서 상속된 전역 단순 유형이 있는 경우, 이것은 해당 ComIbmMrm_xxx 유형의 기본 유형에서 상속하도록 변경됩니다.

생성된 스키마 파일은 이 ComIbmMrm_xxx 유형의 발생을 갖지 않습니다.

예를 들면, 아래 정의된 유형의 전역 요소는

<element name="globalElement1" type="ns1:ComIbmMrm_BaseValueBinary"/>

생성된 스키마 파일 및 아래 정의된 것처럼 해당 xsd 기본 유형을 가진 전역 요소를 제공합니다.

<element name="globalElement1" type="hexBinary"/>
관련 개념
메시지 모델링
메시지 모델
XML Wire 형식: 논리 모델과의 관계
관련 태스크
메시지 모델 개발
메시지 정의 파일 관련 작업
메시지 모델 오브젝트에 대한 작업
관련 참조
메시지 모델 참조 정보
메시지 모델 오브젝트 등록 정보
주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ad15780_