이 대답은 주로 후속 질문과 관련이 있습니다.
(내가 자주 사용하는 대규모 정부이 파일링 플랫폼에서 사용 된) 패턴 중 하나는 스키마에 대해 주/부 버전 번호 매기기 정책을 채택하는 것입니다. 여기에서 부 버전 증분은 변경되지 않는 스키마 변경을 나타내며 주 버전 증분은 변경 사항을 보류하기 위해 예약됩니다. 네임 스페이스 URI에는 주 버전 번호 만 포함됩니다.
예를 들어, 인바운드 메시지 구조가 submitStuff-v1-0.xsd
으로 정의 된 서비스를 노출하고자한다고 가정 해 보겠습니다. 1.0 버전 출시 이후에 (예를 들어, 선택적인 요소를 추가) 우리가 아닌 깨는 변화를 소개, 어떤 시점에서
http://www.example.org/services/submitStuff/1
이 처음의 대상 네임 스페이스 URI (말)을 가질 수있다. 이 submitStuff-v1-1.xsd
의 출시 초래하지만, 네임 스페이스 URI는 다음과 같이 남아있을 것입니다 :
http://www.example.org/services/submitStuff/1
버전 1.1에 도입 된 새로운 요소는 선택 사항이기 때문에이,이 방법은 서비스의 사용자가 강제로 업데이트되지 않음을 의미 자신의 시스템은 새로운 정보를 제출할 필요가없는 경우 (네임 스페이스 URI에 부 버전이 포함되어있을 경우 필요합니다).이것은 클라이언트가 할 수있는 간단한 변화처럼 보일지 모르지만 제출 시스템과 수신 시스템간에 추가적인 결합이 생겨 바람직하지 않을 수 있습니다.
나중에, 주요 변경이 (새로운 필수 요소의 예 도입) 도입, 경우에, 우리는 새로운 네임 스페이스 submitStuff-v2-0.xsd
것 : 서비스의
http://www.example.org/services/submitStuff/2
클라이언트는 다음 수있을 것를 들어오는 메시지에 v1.x 또는 v2.x 호환 요청을 제출할 것인지 여부를 명시 적으로 선언합니다.
전환 기간 동안 서비스 공급자는 모든 클라이언트가 새 메시지 구조로 마이그레이션 할 때까지 v1.x 및 v2.x 메시지를 모두 지원하려고 할 수 있습니다. 네임 스페이스에 주요 버전을 도입함으로써 다음과 같은 시나리오를 구별하는 것이 가능하다 :
- 파일러는 버전 2.x 메시지를 전송하려고 시도했지만, 필수 요소를 놓쳤다 경우 오류 메시지가해야에 반환됩니다.
- 파일 시스템이 v2.x 메시지를 제출하기 위해 아직 업그레이드되지 않았기 때문에 파일을 제출했습니다.이 경우 오류는 반환되지 않습니다.
네임 스페이스에 포함 된 버전 정보를 사용하여 콘텐츠 기반 라우팅을 수행 할 수도 있습니다. 예를 들어 모든 새 버전의 메시지를 새로운 처리 서버 집합으로 라우팅 할 수 있습니다.
물어 보려는 질문에 답해 주셔서 감사하지만 공식화 할 수 없습니다! 이것은 매우 일반적인 경우 인 것처럼 보였습니다. 이제 읽었으니 직접 보았습니다. 네임 스페이스에서 스키마를 추론해야하는 머신 클라이언트에게는 XML 스키마의 변경을 수행 할 때 XML 네임 스페이스 버전 업그레이드의 관례가 중요하다고 생각합니다. 여기를 참고하십시오 : http://stackoverflow.com/questions/8842000/whats-the-best-way-to-indicate-which-version-of-an-xml-schema-should-be-used-to – HDave