2010-11-19 3 views
1

널리 사용되기를 희망하는 XML을 기반으로 (도메인 특정) 언어를 만들었습니다. 그것을 "구현"하려면 xsd 파일을 사용하고 있습니다.새 XML 언어의 네임 스페이스 이름을 선택하는 방법은 무엇입니까?

는 지금까지 내가 XML 언어 네임 스페이스로 다음과 같은 URL을 사용했습니다 : 이제

http://languagemainsite.org/lang/1.0/ 

, 나는 그것이 장기적으로, 네임 스페이스를 선택하는 가장 좋은 방법 확실하지 않다 :

  1. 아마도 네임 스페이스의 버전 번호가 과도한 것입니까? 이미 "버전"속성에도 정의되어 있지만 버전마다 다른 URL을 사용하는 것이 좋을 것이라고 생각했습니다.
  2. URL을 사용하는 것이 항상 좋은가요?
  3. ????

XML 기반 언어의 네임 스페이스 이름 지정에 대한 조언이 있으십니까?

답변

2

경우, 네임 스페이스는 달라야합니다. 그들이 경우 랭-1.1하지 않은 경우 foo은 단지 Lang-1.0 foo 일 수 있으며 몇 가지 추가 기능이있을 수 있습니다. 즉, 동일한 네임 스페이스에 있어야합니다.

예를 들어 XHTML 1.0, XHTML의 <p> 요소를 고려하십시오. L 1.1 및 XHTML5. XHTML의 모든 버전에서 의미 상으로는 같은 (단락)이므로 서로 다른 언어 버전의 다른 기능을 가지고 있더라도 http://www.w3.org/1999/xhtml 네임 스페이스에 모두 살 수 있습니다.

버전 번호를 네임 스페이스에 포함 시키면 이전 버전과의 호환성이 매우 어려워집니다. 두 언어 버전을 지원하는 응용 프로그램은 동일한 이름의 요소를 처리하기 위해 네임 스페이스를 전환해야하며 버전 1 지원 응용 프로그램은 실제로 버전 2 문서를 전혀 읽을 수 없습니다.

의도적으로 완전히 이전 버전과의 호환성을 없애는 새로운 '주요 버전'업데이트의 경우에만 버전이 지정된 네임 스페이스를 사용하십시오. 그렇지 않으면 루트 요소의 version 특성이 일반적으로 더 좋습니다.

네, 다른 사람들의 네임 스페이스와의 충돌을 피하기 위해 URL을 사용해야합니다. 사용하는 URL에 설명적인 정보를 입력하는 것이 예의입니다.

+0

그래서 예를 들어 http://languagemainsite.org/lang/1.x/과 같은 언어를 사용하는 것이 좋습니다. 동일한 언어 버전의 모든 호환 가능한 진화를위한 네임 스페이스가 있습니다. 그런 다음 인터페이스를 해제해야한다면 http://languagemainsite.org/lang/2.x/와 같은 새로운 네임 스페이스로 시작하십시오. – Klaim

+0

감사합니다. languagemainsite.org/lang/1.x 접근 방식을 사용하고 있습니다. – Klaim

+0

네, 그런 종류입니다. 일반적으로'.../lang1'과'.../lang2'. – bobince

0

나는 그것이 합리적인 네임 스페이스 URI처럼 보입니다.

버전 번호와 관련하여; 나는 그것이 좋은 생각이라고 생각한다. xml 선언의 버전 번호는 사용할 수 없습니다 (1.0 또는 1.1 일 수 있음). xml 구문 분석 자체가 포함 된 데이터 또는 언어의 버전이 아닌 작동 방식을 지정합니다. 일반적으로 사용되는 방법으로 많은 값을 볼 수 없습니다. 거기에 그것을 포함하지 않음에. 네임 스페이스 http://languagemainsite.org/lang/1.0/foo 요소가 의미 네임 스페이스 http://languagemainsite.org/lang/1.1/foo 요소에 대한 다른 개념이다

관련 문제