메시지 모델의 네임스페이스

XML 인스턴스 문서 및 XML 스키마에서는 네임스페이스를 사용할 수 있습니다. 네임스페이스는 오브젝트 이름을 규정하는 방법을 제공합니다.

단일 XML 인스턴스 문서에는 다중 응용프로그램에서 정의되어 사용될 수 있는 요소 및 속성이 들어 있을 수 있습니다. 동일한 문서 내의 두 개의 다른 요소 또는 속성에는 동일한 이름이 필요할 수 있습니다. 개별 응용프로그램에서는 처리용으로 설계된 요소 및 속성을 인식할 수 있어야 합니다. 이와 같은 환경에서, 정의는 각 요소를 다른 네임스페이스로 규정하여 서로 구별될 수 있습니다. 그러면 이름 충돌 및 잘못된 인식으로 인한 문제점을 피할 수 있습니다.

XML 스키마는 대상 네임스페이스를 정의할 수 있습니다. 대상 네임스페이스가 정의된 경우, XML 스키마 내에 정의된 전역 요소, 속성, 그룹 및 유형은 대상 네임스페이스로 규정합니다. 로컬 요소 및 속성은 대상 네임스페이스에 의해 선택적으로 규정될 수도 있습니다. 이와 같이 네임스페이스는 독립적으로 개발할 수 있는 XML 스키마의 라이브러리의 확장에 도움을 줍니다. XML 스키마에 사용되는 네임스페이스 이름은 고유하게 제공되므로, 개발자는 다른 XML 스키마 내에 정의된 오브젝트와 이름이 충돌되는 것을 염려할 필요가 없습니다.

네임스페이스 범위는 포함한 문서 이상으로 확장되고 URI(Uniform Resource Identifier)로 식별됩니다. 이를 위해서는 URI가 고유해야 합니다. URL(Universal Resource Locator)의 개념에 더 익숙할 수도 있습니다. URI 정의가 URL의 스펙보다 더 광범위하지만 URI는 종종 URL과 동일한 구문을 사용합니다. URI의 예는 http://mycompany.com/xml_schema입니다.

네임스페이스 접두부는 전체 URI 이름의 단축어로 선언되고, 해당 네임스페이스에 속한 모든 요소를 규정하는 데 사용됩니다. XML 인스턴스 문서 또는 XML 스키마에서 네임스페이스 대신 사용되는 접두부는 xmlns 또는 xmlnsc 속성을 사용하여 지정합니다. xmlns 또는 xmlnsc 속성을 사용하여 디폴트 네임스페이스도 정의할 수 있습니다. 디폴트 네임스페이스를 정의하면, 접두부가 없는 모든 요소 또는 속성은 디폴트 네임스페이스를 사용하여 규정됩니다. 디폴트 네임스페이스를 정의하지 않으면, 접두부가 없는 모든 요소 또는 속성은 네임스페이스에 의해 규정되지 않습니다.

메시지 모델
메시지 모델에서는 메시지 세트 내의 네임스페이스를 지원할 수 있습니다. 단, 메시지 세트에 대해 네임스페이스를 사용 가능 또는 사용 불가능하게 하려는지 여부를 선택할 수 있습니다. 메시지 세트를 작성할 때 네임스페이스를 사용 불가능하도록 선택한 경우, 나중에 네임스페이스를 사용 가능하게 할 수 있습니다. 단, 메시지 세트에 대해 네임스페이스를 사용 가능하게 한 다음에는 네임스페이스를 사용 불가능하게 할 수는 없습니다.

사용 가능한 네임스페이스가 있는 단일 메시지 세트에는 다수의 서로 다른 네임스페이스가 있을 수 있습니다. 각 네임스페이스는 다른 메시지 정의 파일로 표시됩니다. 메시지 정의 파일을 작성할 때, 연관된 네임스페이스를 가질 것인지 또는 notarget 네임스페이스에 속하게 되는지 선택할 수 있습니다. 네임스페이스를 메시지 정의 파일과 연관시키도록 선택하는 경우 접두부도 선택해야 합니다.

메시지 정의 파일에 연관된 네임스페이스가 들어 있으면, 다음의 전역 오브젝트는 이 네임스페이스를 사용하여 규정됩니다.

  • 요소
  • 속성
  • 단순 유형
  • 복합 유형
  • 그룹
  • 속성 그룹

선택적으로, 로컬 요소 및 속성은 네임스페이스로 규정될 수 있습니다.

메시지 정의 파일 내에 정의된 오브젝트는 동일한 메시지 세트 내의 다른 메시지 정의 파일에 있는 오브젝트를 참조할 수 있습니다. 이는 한 메시지 정의 파일을 다른 메시지 정의 파일 내에 들여오거나 포함하여 수행합니다.

XML Wire 형식
메시지 정의 파일과 연관된 네임스페이스는 메시지 모델의 논리적 계층 부분입니다. 따라서 현재 있는 XML Wire 형식을 따르지 않습니다. 그러나 XML Wire 형식이 있으면, 논리적 계층의 네임스페이스 정보는 이 XML Wire 형식의 일부 등록 정보를 대량으로 작성하는데 사용됩니다. 메시지 세트에 대해 네임스페이스를 사용할 경우, XML Wire 형식으로 네임스페이스 URI/접두부 쌍의 테이블이 유지됩니다. 이 테이블은 처음에 접두부가 있는 모든 메시지 정의 파일이 작성될 때 이들 파일의 네임스페이스로 작성됩니다.

WebSphere Message Broker를 사용하고 메시지 세트에서 네임스페이스가 사용 가능하면, 브로커는 XML 인스턴스 문서를 구문 분석할 때 xmlns 또는 xmlnsc 속성의 값을 트리에 저장하지 않습니다. 스키마 위치네임스페이스 스키마 위치 없음 속성의 값도 저장하지 않습니다. 이는 XML 문서가 기록될 때 브로커가 메시지 세트의 XML Wire 형식 등록 정보로부터 이 정보를 재생성하기 때문입니다.

WebSphere Message Broker를 사용하는 경우, XML 메시지를 출력할 때 MRM 도메인은 네임스페이스 URI/접두부 쌍의 테이블을 사용합니다. 네임스페이스에 의해 규정되는 요소 및 속성은 이 테이블에 있는 해당 접두부로 표시되게 됩니다. 브로커는 또한 접두부를 네임스페이스에 맵핑하는 해당 xmlns 또는 xmlnsc 속성의 출력을 관리합니다. 사용자는 네임스페이스 URI/접두부 테이블의 모든 항목에 대한 xmlns 또는 xmlnsc 속성이 문서 시작 시 결과물인지 또는 필요 시 문서로만 된 결과물인지 여부를 선택할 수 있습니다.

메시지 세트에 대해 네임스페이스를 사용할 경우, 파일 이름에 네임스페이스 URI를 맵핑하는 XML Wire 형식의 스키마 위치 테이블이 있습니다. 이 테이블에 항목을 추가할 수 있으며 파일 이름을 notarget 네임스페이스에 맵핑할 수도 있습니다. WebSphere Message Broker를 사용하는 경우, 이 테이블은 XML 문서의 시작에 schemaLocationNo 속성을 출력하는 데 사용됩니다.

메시지 구문 분석 및 ESQL
WebSphere Message Broker를 사용 중인 경우, MRM 도메인과 XMLNS 및 XMLNSC 도메인 구문 분석기는 구문 분석한 XML 메시지에서 접두부가 있는 이름을 인식하여 내부적으로 올바른 네임스페이스에 맵핑합니다. 메시지 모델에서 생성한 사전의 요소 및 속성은 메시지 모델 절에서 설명한 대로 네임스페이스에 의해 규정되거나 규정되지 않을 수 있습니다.

MRM 도메인에서 XML 형식을 사용하는 경우, 메시지 모델에서 생성된 사전에 대응하여 구문 분석된 메시지가 일치하는 경우 사전의 네임스페이스에 따라 요소 또는 속성이 일치합니다. 따라서 메시지에 있는 요소 또는 속성을 사전과 일치되게 하려면 이름과 네임스페이스가 모두 일치해야 합니다.

WebSphere Message Broker를 사용하는 경우, ESQL을 작성할 때 네임스페이스를 지정할 수 있도록 지원합니다. 네임스페이스를 사용 중이 아닐 경우 네임스페이스를 인식하는 ESQL을 작성할 필요가 없습니다. 그러나 네임스페이스를 사용하기로 결정한 경우, 메시지 정의 파일은 선택한 모든 네임스페이스를 대상으로 할 수 있으며, 네임스페이스 인식 ESQL을 작성해야 합니다. 요소가 상주하는 네임스페이스는 구문 분석 시 메시지 트리에 저장됩니다. 이 요소는 논리 등록 정보이며, 메시지가 구문 분석되고 작성되는 물리적 Wire에 형식에 관계없이 보유됩니다. 정의된 접두부를 사용하여 요소 네임스페이스를 참조하기 쉽도록 새 구문이 ESQL에 추가되었습니다.

다른 형식으로부터 들여오기
메시지 모델을 이용하여 다른 형식의 메시지 정의 파일을 Message Brokers Toolkit으로 들여옴으로써 이를 작성할 수 있습니다.
  • XML DTD 파일을 들여오는 경우, 작성된 메시지 정의 파일은 대상 없음 네임스페이스에 있게 됩니다.
  • XML 스키마 파일을 들여올 경우, 작성된 메시지 정의 파일의 대상 네임스페이스는 메시지 세트에 대해 네임스페이스가 사용 가능한지 여부에 따라 다릅니다.
    • 네임스페이스가 사용 가능한 경우, 작성된 메시지 정의 파일의 대상 네임스페이스는 들여오고 있는 XML 스키마의 대상 네임스페이스가 됩니다.
    • 메시지 세트에 대해 네임스페이스가 사용 불가능한 경우, 작성된 메시지 정의 파일은 대상 없음 네임스페이스에 있게 됩니다. 이 들여오기 유형은 전체 네임스페이스 지원을 제공하지는 않습니다. WebSphere Message Broker를 사용하는 경우, 이 메시지 모델에서 생성된 사전에 대응하여 구문 분석된 XML 메시지를 처리하기 위한 네임스페이스 인식 ESQL 또는 Java를 작성하지 않아도 됩니다. 이유는 네임스페이스를 사용하지 않는 메시지 세트로 XML 스키마 들여오기를 참조하십시오.
  • COBOL 사본 또는 C 헤더 파일을 들여올 경우, 작성된 메시지 정의 파일의 대상 네임스페이스는 메시지 세트에 대해 네임스페이스가 사용 가능한지 여부에 따라 다릅니다.
    • 네임스페이스가 사용 가능한 경우, 작성된 메시지 정의 파일의 대상 네임스페이스는 대상 없음 네임스페이스입니다. 이 디폴트 네임스페이스는 새 메시지 정의 파일 마법사에서 대상 네임스페이스를 지정하여 대체할 수 있습니다. 이와 같은 대체를 수행하는 이유에 대해서는 비XML 메시지가 있는 네임스페이스를 참조하십시오.
    • 메시지 세트에 대해 네임스페이스가 사용 불가능한 경우, 작성된 메시지 정의 파일은 대상 없음 네임스페이스에 있게 됩니다.

XML에 대한 추가 정보

W3C(World Wide Web Consortium) 웹 사이트에서 다음을 참조하십시오.

주의사항 | 등록상표 | 다운로드 | 라이브러리 | 지원 | 피드백
Copyright IBM Corporation 1999, 2006 마지막 갱신 날짜: 2006/08/21
ad00820_