맨위로가기

XML 네임스페이스

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

XML 네임스페이스는 XML 문서 내에서 요소와 속성을 식별하고 충돌을 방지하기 위한 메커니즘이다. 네임스페이스 이름은 URI를 사용하며, 일반적으로 어휘를 정의하는 조직의 웹 서버 URL을 가리킨다. 네임스페이스는 `xmlns` 또는 `xmlns:prefix` 속성을 사용하여 선언되며, 접두사를 통해 요소나 속성을 특정 네임스페이스에 연결할 수 있다. API와 XML 객체 모델은 네임스페이스 정보를 제공하는 다양한 방식을 사용하며, 요소의 로컬 이름, 네임스페이스 접두사, 네임스페이스 URI를 통해 요소나 속성을 식별한다.

더 읽어볼만한 페이지

  • XML - 오피스 오픈 XML
    오피스 오픈 XML은 마이크로소프트에서 개발한 XML 기반의 파일 포맷으로, 문서, 스프레드시트, 프레젠테이션 등의 사무용 전자 문서를 표현하기 위해 사용되며 마이크로소프트 오피스 2007부터 기본 파일 형식으로 채택되어 ECMA 인터내셔널 및 ISO/IEC 국제 표준으로도 표준화되었다.
  • XML - 자원 기술 프레임워크
    자원 기술 프레임워크(RDF)는 웹 상의 메타데이터를 표현하기 위한 표준 모델로, URI 기반의 리소스와 트리플 구조의 속성을 사용하여 정보 자원 간의 관계를 명확하게 기술하며, 시맨틱 웹 구축의 핵심 기술로서 다양한 분야에서 활용된다.
XML 네임스페이스
개요
XML 네임스페이스 다이어그램
XML 네임스페이스 다이어그램
일반 정보
종류W3C 권고안
버전1.0 (1999년 1월 14일)
상세 정보
목적XML 문서에서 요소 및 속성 이름의 고유성을 제공
접두사선언된 네임스페이스와 연결된 짧은 문자열
`xmlns` 속성으로 선언
URI 참조네임스페이스를 식별하는 데 사용되는 URI
범위네임스페이스 선언이 적용되는 XML 문서의 일부
기본 네임스페이스접두사 없이 선언된 네임스페이스 (요소에만 적용)
한계DTD로는 네임스페이스를 인식할 수 없음
XML 1.0에서는 네임스페이스 이름에 대한 유효성 검사 방법이 제공되지 않음
기술적 세부 사항
구문`xmlns:prefix="URI"` (접두사 있는 네임스페이스 선언)
`xmlns="URI"` (기본 네임스페이스 선언)
URI 사용네임스페이스 이름은 URI이지만, 반드시 웹 페이지를 가리킬 필요는 없음 (단순한 식별자 역할)
범위 규칙내부 요소는 외부 요소의 네임스페이스를 상속받지만, 재정의 가능
활용
주요 활용 분야서로 다른 XML 어휘가 혼합된 문서
XML 스키마
XSLT
SOAP
RDF
관련 기술
관련 기술XML 스키마 (네임스페이스 인식)
XSLT (네임스페이스 사용)
기타
참고네임스페이스는 XML 문서의 요소와 속성 이름 간의 이름 충돌을 방지하는 데 사용됨
XML 네임스페이스는 XML 1.0 사양에 추가되어 XML의 확장성을 향상시킴

2. 네임스페이스 이름

일반적으로 XML 어휘의 네임스페이스에 대해 선택된 URI는 어휘를 정의하는 작성자 또는 조직의 제어하에 있는 자원, 예를 들어 작성자의 웹 서버에 대한 URL을 설명한다. 그러나 네임스페이스 명세는 네임스페이스 URI가 정보를 검색하는 데 사용되어야 한다고 요구하거나 제안하지 않으며, XML 파서에 의해 단순히 문자열로 취급된다. 예를 들어, http://www.w3.org/1999/xhtml 에 있는 문서는 그 자체로 어떤 코드도 포함하지 않으며, 단순히 인간 독자에게 XHTML 네임스페이스를 설명한다. 단순한 문자열(예: "xhtml") 대신 URI(예: "http://www.w3.org/1999/xhtml")를 사용하여 네임스페이스를 식별하면 서로 다른 네임스페이스에서 중복 식별자를 사용할 가능성이 줄어든다.

W3C 권고안에서는 ''네임스페이스 URI''라는 용어 대신 ''네임스페이스 이름''이라는 용어를 사용한다. 이 명세는 네임스페이스 이름에 대한 정확한 규칙에 대해 완전히 규정적이지 않으며 (파서가 네임스페이스 이름이 유효한 통합 자원 식별자가 아닌 문서를 거부해야 한다고 명시적으로 말하지 않음), 많은 XML 파서가 모든 문자열을 사용할 수 있도록 허용한다. 권고안 버전 1.1에서 네임스페이스 이름은 국제화된 자원 식별자가 되며, 이는 실제로는 이미 거의 모든 XML 소프트웨어에서 허용되었던 비ASCII 문자의 사용을 허가한다. 그러나 ''네임스페이스 URI''라는 용어는 W3C 및 기타 기관의 많은 다른 명세서에서도 사용된다.

HTTP 스키마 형태의 URI(예: ''http://www.w3.org/1999/xhtml'')를 사용하는 것은 HTTP 프로토콜과의 공식적인 관계가 없음에도 불구하고 일반적이다. 네임스페이스 명세는 이러한 URL이 역참조될 경우(즉, 소프트웨어가 이 위치에서 문서를 검색하려고 시도하는 경우) 어떻게 해야 하는지에 대해 명시하지 않는다. 일부 사용자가 채택한 한 가지 관례는 RDDL 문서를 해당 위치에 배치하는 것이다.[5] 그러나 일반적으로 사용자는 네임스페이스 URI가 웹상의 문서 주소가 아닌 단순히 이름이라고 가정해야 한다.

2. 1. 상대 URI 사용

W3C의 결정에 따라 상대 URI는 더 이상 사용되지 않게 되었다.[3][4]

네임스페이스 권고안이 발표된 후, 상대 URI를 처리하는 방법에 대한 격렬한 논쟁이 있었다. 일부는 상대 URI를 단순히 문자열로 취급해야 한다고 주장했고, 다른 사람들은 문서의 기본 URI에 대해 해석하여 절대 URI로 변환해야 한다고 주장했다.

3. 네임스페이스 선언

XML 네임스페이스는 예약된 XML 속성 `xmlns` 또는 `xmlns:prefix`를 사용하여 선언되며, 그 값은 유효한 네임스페이스 이름이어야 한다.

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

```text

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

```

이름이 "xhtml:" 접두사로 시작하는 모든 요소나 속성은 해당 요소 또는 상위 요소에 위의 네임스페이스 선언이 있는 경우 XHTML 네임스페이스에 있는 것으로 간주된다.

기본 네임스페이스를 선언하는 것도 가능하다. 예를 들면 다음과 같다.

```text

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

```

이 경우 네임스페이스 접두사가 없는 모든 요소는 해당 요소 또는 상위 요소에 위의 기본 네임스페이스 선언이 있는 경우 XHTML 네임스페이스에 있는 것으로 간주된다.

범위에 기본 네임스페이스 선언이 없으면 네임스페이스 이름에는 값이 없다.[9] 이 경우 명시적인 네임스페이스 접두사가 없는 요소는 어떤 네임스페이스에도 없는 것으로 간주된다.

속성에는 기본 네임스페이스가 적용되지 않는다. 명시적인 네임스페이스 접두사가 없는 특성은 어떤 네임스페이스에도 없는 것으로 간주된다.

4. API 및 XML 객체 모델에서의 네임스페이스

거의 모든 프로그래밍 모델은 요소 또는 속성 노드의 이름을 로컬 이름, 네임스페이스 접두사, 네임스페이스 URI의 세 부분으로 검색할 수 있도록 한다. 애플리케이션은 접두사의 선택에 어떠한 의미도 부여하지 않아야 하지만, 이 정보는 사람이 읽는 데 도움이 될 수 있기 때문에 제공된다. 네임스페이스 URI와 로컬 이름이 일치하면 이름이 동일한 것으로 간주된다.[1]

또한 대부분의 모델은 주어진 요소에 대해 어떤 네임스페이스가 선언되었는지 확인하는 방법을 제공한다. 일부 XML 어휘에서 (네임스페이스 접두사를 포함하는) 정규화된 이름이 요소 또는 속성의 이름뿐만 아니라 내용에도 나타날 수 있기 때문에 이 정보가 필요하다. 이 정보를 제공하는 세 가지 주요 방법은 다음과 같다.[1]

방법설명
"xmlns" 또는 "xmlns:xxx"라는 속성 노드네임스페이스가 소스 XML 문서에 기록된 것과 정확히 같다. 이는 DOM에서 제공하는 모델이다.
네임스페이스 선언속성과 구별되지만 소스 XML 문서의 관련 속성과 일대일로 대응된다. 이는 JDOM에서 제공하는 모델이다.
범위 내 네임스페이스 바인딩이 모델에서 애플리케이션은 주어진 요소에 대해 어떤 네임스페이스가 유효한지 확인할 수 있지만, 실제 선언을 포함하는 요소를 확인할 수는 없다. 이는 XPath, XSLT, XQuery에서 사용되는 모델이다.


참조

[1] 웹사이트 Namespaces in XML 1.0 http://www.w3.org/TR[...] W3C 2009-12
[2] 웹사이트 XML and Semantic Web W3C Standards Timeline (v.1.2) http://www.dblab.ntu[...]
[3] 웹사이트 News from the trenches https://www.xml.com/[...] O'Reilly Media, Inc. 2000-05-24
[4] 간행물 W3C XML Plenary decision on relative URI references in namespace declarations 2000-09-11
[5] 웹사이트 RDDL Me This: What Does a Namespace URL Locate? http://www.oreillyne[...] 2001-02-20
[6] 웹사이트 Namespaces in XML 1.0 (Third Edition) https://www.w3.org/T[...] W3C 2017-04-28
[7] 웹인용 Namespaces in XML 1.0 http://www.w3.org/TR[...] W3C 2009-12
[8] 웹인용 XML and Semantic Web W3C Standards Timeline (v.1.2) http://www.dblab.ntu[...] 2024-05-14
[9] 웹인용 Namespaces in XML 1.0 (Third Edition) https://www.w3.org/T[...] W3C 2017-04-28



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com