XML 네임 스페이스에 URI가 필요한 이유는 무엇입니까?


23

왜 XML 네임 스페이스에 URI가 필요한지 알아 내려고하는데 그 목적을 찾을 수 없습니다. 누구든지 구체적인 예에서 사용법을 조금 밝게 밝힐 수 있습니까?

편집하다:

예를 들어 좋아 : 나는 w3schools에서 이것을 가지고있다.

<root
xmlns:h="http://www.w3.org/TR/html4/"
 xmlns:f="http://www.w3schools.com/furniture">

 <h:table>
   <h:tr>
     <h:td>Apples</h:td>
     <h:td>Bananas</h:td>
   </h:tr>
 </h:table>

 <f:table>
   <f:name>African Coffee Table</f:name>
   <f:width>80</f:width>
   <f:length>120</f:length>
 </f:table>

 </root>

그래서 무엇을 http://www.w3schools.com/furniture잡아야합니까?



7
의무 w3fools 의견.
yannis 2011

XML 네임 스페이스는 URI 형식이어야합니까? 아니면 'My.Namespace.Foo'와 같은 문자열을 사용할 수 있습니까?
Mas

답변:


20

네임 스페이스는 "푸 이런 종류의"는 같은 철자에도 불구하고, "푸 그런 종류의"다른 말을하는 방법입니다. 또는 " 종류의 푸" 를 선호하는 경우 "다른 모든 종류의 푸"와 다릅니다 .

이것을 " Foo에 대한 네임 스페이스 의 URI"라고 말하는 기술적 방법은 Foo에 대한 네임 스페이스에 대한 다른 모든 URI와 다릅니다. 다시 말해, URI는 당신이 그렇게 말할 수있는 문자열 일뿐입니다.

트릭은 "이봐, URL은 유효한 URI입니다"라고 말한 다음 제어하에 URL에 해당하는 URI를 사용하십시오. 모두가 그렇게하면 우연한 네임 스페이스 충돌을 피할 수 있습니다. 네임 스페이스 "A"와 네임 스페이스 "B"를 말할 수도 있지만 다른 사람도 같은 네임 스페이스를 사용할 위험이 있으므로 Foo의 종류는 더 이상 피하고 싶은 Foo와 다르지 않습니다. .

그런 다음 URI로 사용되는 URL에 추가 규칙을 추가 할 수 있습니다. 예를 들어 URL은 문서 또는 XSD 또는 이와 유사한 것을 포함하는 페이지와 일치해야하지만 필수는 아닙니다. 그냥 편리합니다.


좋습니다, 그러나 네임 스페이스 A와 네임 스페이스 w3.org/1999/xhtml 의 차이점은 무엇 입니까? 사용자는 동일한 네임 스페이스를 사용했다는 사실을 모르더라도 사용자가 둘 다 사용할 수 있습니다.
Patryk

1
@Patryk, 당신이 제어하는 ​​URL을 사용하는 이유입니다. xhtml 네임 스페이스 URL은 XHTML 사양을 정의한 W3C가 제어합니다.

2
@Patryk 은 URL을 선택하는 네임 스페이스를 정의 하는 것 입니다. 그러면 다른 사람들이 사용할 있습니다.

1
네임 스페이스 a가 완전히 유효합니까? 멍청하지만 유효합니까? 아니면 URI 여야합니까?
Rudie

5
몇 년 전에이 컨벤션을 사용했던 최초의 소수의 사람들이 스키마에 대한 스키마에 대한 간결한 문서를 그 URL에 간결하게 기록한 것이 굉장하지 않습니까? Microsoft의 OpenXML 네임 스페이스 schemas.openxmlformats.org/drawingml/2006/chart 는 아무 것도 가리 키지 않습니다.
프로토 타입

16

일반적으로 고유 식별자는 네임 스페이스에 사용됩니다. 그러나 전 세계적으로 고유 해야 하므로 표준은 일부 중재 권한을 위임하거나 동시에 전 세계적으로 고유하지만 보유하기 쉽고 자신의 역할을 증명할 수있는 다른 리소스를 사용해야합니다.

오 봐! 당신이 도메인을 가지고 있다면, 그것은 분명히 당신의 것입니다, 그리고 그것은 당신의 것임을 쉽게 증명할 수 있습니다!

예를 들어, 서로 다른 두 개의 서점이 두 개의 다른 서점에서 "서적"을 네임 스페이스로 사용하기 시작하는 상황을 피하려고했습니다. 내부적으로 사용하는 데는 문제가 없습니다. 그러나 그들 중 한 사람이 자신의 사양을 발표하고자 할 때, 모든 지옥은 풀려납니다.

대신 도메인을 사용하도록 장려하면 누구든지 (도메인을 소유 한 모든 사람) 다른 사람이 정확히 동일한 식별자를 사용하지 않을 것이라는 확신을 가지고 자신의 개인 네임 스페이스를 정의 할 수 있습니다.

또한 URI에 네임 스페이스 정의를 선택적으로 저장하여 자체 문서화 할 수 있습니다.

나에게 좋은 생각 인 것 같습니다.


답변 주셔서 감사하지만 이것을 이해하려면 더 구체적인 것이 필요합니다. 나는 당신이 기초로 할 수있는 모범적 인 코드를 추가했습니다.
Patryk

1
@patryk-아무것도 아닙니다. 주소가 아닙니다-XML 파일을 섞을 수있는 다른 사람이 아무도 없다고 확신하는 유일한 토큰 일뿐입니다. 모든 말은 <table> 등의 이름이 맨 위에 www.w3.org 이름을 가진 xml 파일에서 다른 의미로 사용되지 않는다는 것입니다.
Martin Beckett

wikipedia에서 사용자가 예를 들어 w3.org/1999/xhtml 을 네임 스페이스로 사용할 수 있다고 말하면 많은 사람들이 동일한 네임 스페이스를 갖게됩니다. 내가 맞아?
Patryk

@Patryk, 동일한 용도로 사용하려는 경우에만. 새 네임 스페이스를 정의하려면 고유 한 도메인을 사용하는 것이 좋습니다.
Javier

@Javier '같은 사용'이란 무엇입니까?
Patryk

1

DOM Level 2는 2000 년 후반에 출판되었다. "getElementById"함수뿐만 아니라 이벤트 모델과 XML 네임 스페이스 및 CSS 지원이 도입되었다.

xmlIns는 무엇을 지정합니까?
"xmlns"또는 "xmlns : xxx"라는 속성 노드로서 네임 스페이스가 소스 XML 문서에 기록 된 것과 정확히 동일합니다. 이것은 DOM에 의해 제시된 모델입니다.

어떤 URI가 포함되어 있습니까?
XML 네임 스페이스는 예약 된 XML 의사 속성 xmlns 또는 xmlns : prefix를 사용하여 선언되며 값은 유효한 네임 스페이스 이름이어야합니다.

예를 들어 다음 선언은 "xhtml :"접두사를 XHTML 네임 스페이스에 매핑합니다.

xmlns : xhtml = "http://www.w3.org/1999/xhtml"

내가 Wikipedia에 기사 를 읽은 후 발견 한 것처럼. URI에는 네임 스페이스의 XML 형식 사양이 포함되어 있으며 요소 이름 충돌을 피하는 방법을 제공합니다.

XML 문서가 XML 문서 XML Schema요소의 요소 / 테이블 / 클래스 구조에 사용된다는 것을 알고있을 것 입니다.

http://www.w3schools.com/furniture 는 무엇을 보유 해야 합니까?

답은 XML 네임 스페이스에 대해 배운 페이지에 있습니다. Namespaces in Real Use이 W3Schools 기사의 섹션을 확인 하십시오 .

이 URI가 무엇을 가지고 있는지 보여주는 몇 가지 스택 오버 플로우 링크를 확인하십시오.

XML 네임 스페이스를 만들고 사용하는 방법?


-1

URI = 네임 스페이스의 전역 고유 이름 또는 식별자

석유 산업 물류의 재무 관리에 관한 데이터베이스 또는 문서 작성을 고려하십시오. 데이터베이스, 문서, 관리, 재무, 물류, 석유 및 산업과 같은 각 주제에 대해 특정 어휘 (즉, 제어 용어)를 사용해야합니다.

이 7 개의 어휘에서 겹치는 용어가 없으면 하나의 URI 만 필요합니다. 그러나 이러한 어휘에서 다른 용어와 겹치는 각 용어에 대해 URI 또는 ​​IRI로 식별되는 추가 주제별 어휘가 필요합니다. 이를 해결하는 한 가지 방법은 더 넓은 일반 용어와 더 좁은 주제별 용어로 병합 된 분류법을 작성하는 것입니다.

이것은 용어의 전문 용어와 동의어를 보여주는 동의어 사전으로 확장 될 수 있으며, 그 전문 용어 동의어 중에서 선호하는 용어를 지정할 수 있습니다.


2
이 게시물은 읽기 어렵습니다 (텍스트의 벽). 더 나은 형태로 편집 하시겠습니까 ?
gnat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.