Sun Java System Message Queue 4.2 릴리스 노트

XML 페이로드 메시지의 스키마 검증

Message Queue 4.2의 이러한 새 기능을 통해 브로커로 메시지를 보낼 때 XML 스키마를 기준으로 텍스트(객체 아님) XML 메시지의 내용을 검증할 수 있습니다. XML 스키마(XSD)의 위치는 Message Queue 대상의 등록 정보로 지정됩니다. XSD 위치가 지정되지 않은 경우에는 XML 문서에 있는 DTD 선언을 사용하여 DTD 검증이 수행됩니다. (데이터 유형 및 값 범위 검증이 포함되는 XSD 검증은 DTD 검증보다 더 엄격합니다.)

이러한 새 기능을 사용하는 클라이언트 응용 프로그램의 경우 Java SE 버전을 JRE 1.5 이상으로 업그레이드해야 합니다.

XML 스키마 검증을 사용하려면 다음의 물리적 대상 등록 정보를 설정합니다.

표 1–5 XML 스키마 검증을 위한 물리적 대상 등록 정보

등록 정보 

유형 

기본값 

설명 

validateXMLSchemaEnabled

부울 

false

XML 스키마 검증 사용 여부 

false로 설정되거나 설정되지 않은 경우 대상에 대해 XML 스키마 검증이 사용되지 않습니다.

XMLSchemaURIList

문자열 

null 

XML 스키마 문서(XSD) URI 문자열의 공백으로 구분된 목록 

사용하도록 설정된 경우 URI는 XML 스키마 검증에 사용할 하나 이상의 XSD 위치를 가리킵니다.  

여러 URI를 지정할 경우에는 이 값 주위에 큰 따옴표를 사용합니다. 

예: 

"http://foo/flap.xsd http://test.com/test.xsd"

이 등록 정보가 설정되지 않았거나 null이고 XML 검증이 설정된 경우에는 XML 문서에 지정된 DTD를 사용하여 XML 검증이 수행됩니다. 

reloadXMLSchemaOnFailure

부울 

false

실패 시 XML 스키마 다시 로드 사용 여부 

false로 설정되거나 설정되지 않은 경우 검증에 실패해도 스키마가 다시 로드되지 않습니다. 

XML 검증이 설정된 경우에는 Message Queue 클라이언트 런타임에서 XML 메시지를 브로커로 보내기 전에 지정된 XSD(또는 XSD가 지정되지 않은 경우 DTD)를 기준으로 해당 메시지의 검증을 시도합니다. 지정된 스키마를 찾을 수 없거나 메시지를 검증할 수 없는 경우에는 메시지가 전송되지 않고 예외가 발생합니다.

imqcmd create dst 또는 imqcmd update dst 명령을 각각 사용하여 대상을 만들거나 업데이트할 때 XML 검증 등록 정보를 설정할 수 있습니다. XML 검증 등록 정보는 대상이 비활성 상태인 동안, 즉 사용자나 생성자가 없고 대상에 메시지가 없는 경우에 설정해야 합니다.


주 –

런타임 시 XSD에 액세스할 수 없는 경우에는 대상이 활성 상태인 동안 XMLSchemaURIList를 수정해야 합니다.


대상이 활성 상태인 동안 XML 검증 등록 정보를 설정한 경우(예: 대상에 생성자가 연결된 경우)에는 생성자가 브로커에 다시 연결할 때까지 변경 사항이 적용되지 않습니다. 마찬가지로, 응용 프로그램 요구 사항을 변경한 결과로 XSD가 변경된 경우에는 변경된 XSD를 기반으로 XML 메시지를 생성하는 모든 클라이언트 응용 프로그램이 브로커에 다시 연결되어야 합니다.

reloadXMLSchemaOnFailure 등록 정보가 true로 설정된 상태에서 XML 검증이 실패한 경우에는 Message Queue 클라이언트 런타임에서 XSD를 다시 로드하여 메시지 검증을 다시 시도합니다. 다시 로드된 XSD를 사용해도 검증에 계속 실패할 경우 클라이언트 런타임에서 예외가 발생합니다.