주 메뉴 열기

wwiki β

XML 네임 스페이스

Jhkim (토론 | 기여)님의 2021년 7월 27일 (화) 01:25 판 (동기 및 요약)

출처: https://triple-underscore.github.io/xml-names-ja.html를 구글기계 번역한 문서입니다.


XML 1.0 네임 스페이스 (제 3 판) XML 1.1 네임 스페이스 (제 2 판)

2009 년 12 월 8 일 2006 년 8 월 16 일 W3C 권고안

이 일본어 번역은 비공식적 인 문서입니다 ...(번역 업데이트 :2017-07-31 )

이 페이지W3C 에 의해 부제 날짜에서 권고로 발행 된 Namespaces in XML 1.0 (제 3 판) Namespaces in XML 1.1 (2 판) 을 일본어로 번역 한 것입니다. (공개 :2012-02-10 )

사양 메타 데이터

이 버전 (원문 URL)
https://www.w3.org/TR/xml-names/
이 버전 (1.0, 1.1) 
https://www.w3.org/TR/2009/REC-xml-names-20091208/
https://www.w3.org/TR/2006/REC-xml-names11-20060816
최신 버전 (1.0, 1.1) 
https://www.w3.org/TR/xml-names/
https://www.w3.org/TR/xml-names11
이전 버전 (1.0, 1.0, 1.1) 
https://www.w3.org/TR/2006/REC-xml-names-20060816/
https://www.w3.org/TR/2009/PER-xml-names-20090806/
https://www.w3.org/TR/2006/PER-xml-names11-20060614
편집 
Tim Bray, Textuality <tbray@textuality.com>
Dave Hollander, Contivo, Inc. <dmh@contivo.com>
Andrew Layman, Microsoft <andrewl@microsoft.com>
Richard Tobin, University of Edinburgh and Markup Technology Ltd <richard@inf.ed.ac.uk> <richard@cogsci.ed.ac.uk>
Henry S. Thompson, University of Edinburgh and W3C <ht@w3.org> - Third Edition
구현 보고서

http://www.w3.org/XML/2002/12/xml-names11-implementation.html

(버전 1.1의 알려진 구현은 모두 1.0을 지원하고있다.)
테스트 세트
https://www.w3.org/XML/Test/
메일 링리스트
xml-names-editor@w3.org
archives
정오표
https://www.w3.org/XML/2009/xml-names-errata
https://www.w3.org/XML/2006/xml-names11-errata
각 국어 번역
https://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names
https://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names11
비공식 형식
XML 버전
제 2 판의 차이 강조 판
제 1 판의 차이 강조 판

색인 등

제목 / / / 역주(클릭 순회) |용어 목록

©

Copyright ©  2009 W3C ® ( MIT , ERCIM , Keio ), All Rights Reserved. W3C liability , trademark and document use rules apply. [이 페이지에는 버전 1.1의 일본어 번역도 포함되어 있습니다 (기본은 숨기기). 창 하단의 컨트롤에 표시를 전환 할 수 있습니다 (1.0, 1.1 양자의 차이를 비교할 수 있습니다). ]


요약

XML 네임 스페이스는 XML 문서에서 사용하는 요소와 속성의 이름에 대해 URI 참조에 의해 식별되는 네임 스페이스에 연결시키는 것으로 규정하는 간단한 방법을 제공하는.

이 문서의 상태

이 절에서는 발행 시점에서 ... [이하이 절 다른 내용은 생략한다. 이 절에 언급되어있는 링크 중 일부 (구현 보고서 등)는 시작 부분의 "사양 메타 데이터"에 가세하고있다. ]

동기 및 요약

우리는 단일 XML 문서가 여러 소프트웨어 모듈에 대해 정의되고 사용되는 요소와 속성(여기서는 "마크업 어휘"라고 함)을 포함할 수 있는 XML(Extensible Markup Language)의 응용 프로그램을 구상합니다. 이에 대한 한 가지 동기는 모듈화입니다. 잘 이해되고 유용한 소프트웨어가 있는 그러한 마크업 어휘가 존재한다면, 이 마크업을 다시 발명하는 것보다 재사용하는 것이 좋습니다.

여러 마크업 어휘를 포함하는 이러한 문서는 인식 및 충돌 문제를 제기합니다. 소프트웨어 모듈은 다른 소프트웨어 패키지를 위한 마크업이 동일한 요소 이름 이나 속성 이름을 사용할 때 발생하는 "충돌"에 직면하더라도 처리하도록 설계된 요소와 속성을 인식할 수 있어야 합니다 .

이러한 고려 사항은 문서 구성이 다른 마크업 어휘의 이름 간의 충돌을 피하기 위해 구성된 이름을 가져야 함을 요구합니다. 이 사양은 확장된 이름 을 요소 및 속성 에 할당하여 이를 수행 하는 메커니즘인 XML 네임스페이스에 대해 설명 합니다.

표기와 용법에 대한주의

[이 절의 다른 내용 ([RFC2119] 관련)은 생략한다. ]

이 사양의 생성 규칙의 비 종단 기호의 대부분은 여기가 아니라 XML 사양 [XML] 에서 정의되는 것에주의. 여기에 정의 된 비 종단 기호가 XML 사양의 비 종단 기호와 이름이 같은 경우 모든 사례에서 전자와 일치하는 문자열의 집합은 후자에 부합하는 문자열의 집합의 부분 집합이된다.

이 사양에 적합한 문서는이 문서의 각 생성 규칙에 부여되는 "네임 스페이스 구속"(Namespace Constraint)에 따라야한다.

XML 네임 스페이스

기본 개념

정의 : XML 네임 스페이스 는 URI 참조 [RFC3986][RFC3987] 에 의해 확인된다. 요소 이름 / 속성 이름이 사양에 언급 구조를 이용하여 한 XML 네임 스페이스 에 속해있다.

정의 : 열기 이름 은 ( 이름 공간 명 , 국소 이름 )의 쌍이다.

정의 : 주어진 이름 이름 의 네임 스페이스 는 이름 이 URI S 로 식별되는 이름 공간에 속하는한다면, S 이다. 이름 이름 이 어떤 이름 공간에 속하지 않는다면 해당 네임 스페이스 이름의 값은 아니다.

정의 : 하나의 사례에서도 국소 이름 은 이름 이된다.

[통일적으로 관리되는 URI 로 네임 스페이스 어휘 국소 이름 ] 조합하면 이름 충돌은 피할 수있게된다.

URI 참조는 이름에 허용되지 않는 문자를 포함 할 수있다 위에 길고 불편하기 때문에 열기 이름 이 XML 문서의 요소와 속성의 이름에 직접 이용되는 것은 아니다. 대신 유 정규화 된 이름 이 사용된다.

정의 : 유 정규화 된 이름 은 네임 스페이스 해석의 대상이되는 이름이다.

이 사양에 맞는 문서에서는 요소 이름 / 속성 이름은 유 수식 명 으로 출현한다. 구문으로, 그들은 접두사가 이름 ( PrefixedName) 또는 접두사없는 이름 ( UnprefixedName) 중 하나이며, 접두사를 네임 스페이스에 속박하는 및 접두사없이 요소 이름을 기본 이름 공간에 속박하는 특성에 따른 선언 구문이 제공되고있다. 이 선언의 시야 (범위)는 문서의 각 부분에 다른 속박을 적용 할 수 있도록하기 위해, 그것이 출현하는 요소 아래 (요소 자신과 그 내용)에 한정된다. 이 사양에 적합한 처리 장치는 이러한 선언과 접두어를 인식하고 올바르게 작동해야한다.

네임 스페이스 이름으로 URI 의 사용

빈 문자열은 URI 참조로 합법적 이어도 네임 스페이스 이름으로 사용할 수 없다.

네임 스페이스 선언에서 상대 URI 참조의 사용은 동일한 문서에 대한 참조를 포함하여 비추천되었다.

참고 : 이것은 W3C XML Plenary Ballot [Relative-URI-deprecation] 에 의해 결정되었다. 거기는 “DOM, XPath 등의 후 사양에서도 이에 대한 해석은 정의하지 않는다고하는” 것도 선언되었다.

URI 참조 비교법

네임 스페이스를 식별하는 URI 참조가있는 이름이 주어진 네임 스페이스에 속하는지 여부와 2 개의 이름이 동일한 네임 스페이스에 속하는지 여부를 결정하는 비교된다.

정의 : 두 URI 문자열로 취급하며, 문자열로 일치 할 때, 즉 같은 문자 순서 일 때, 그 때에 한하여 서로 일치 한다고한다.

비교에서는 문자 대소를 구분 % - 탈출하거나 그 반대로 되돌릴 수는 없다.

따라서 2 개의 URI 참조가 서로 일치 하지 않아도 동일한 자원에 해결 될 수있다. 예를 들어, 문자 대소 나 % - 탈출의 유무에서만 차이하는 URI 참조 또는 [기저 URI가 다른 외부 실체]의 URI 참조 (가 상대 URI 참조 네임 스페이스 이름으로 비추천 된 것 주의).

이름 공간 선언의 URI 참조는 속성의 정규화 된 값 이며, XML 문자와 엔터티 참조 대체 어떻게 비교보다 먼저 진행된다.

다음의 URI 참조는 문자 대소가 상이한 때문에 네임 스페이스를 식별하는 데 있어서는 모든 서로 다른 :

  • http://www.example.org/wine
  • http://www.Example.org/wine
  • http://www.example.org/Wine

다음 URI 참조도 네임 스페이스를 식별하는 데 있어서는 모든 서로 다른 :

  • http://www.example.org/~wilbur
  • http://www.example.org/%7ewilbur
  • http://www.example.org/%7ewilbur
  • http://www.example.org/%7Ewilbur

참조의 해결 후에 등가가 될 URI 에 의한 혼동 위험이 있으므로, 네임 스페이스에서는 % - 이스케이프 된 문자는 사용하지 않는 것이 강력히 권장된다.

네임 스페이스 선언

정의 : 이름 공간 (더 정확하게는 네임 스페이스 속박) 예약 된 속성의 부족을 이용하여 선언 된다. 이러한 속성 이름은 'xmlns'과 일치하거나 'xmlns:'부터 시작해야한다. 이러한 특성은 다른 XML 속성뿐만 아니라 직접 또는 기본 의해供せる/ 공급 될 수있다.

이름 공간 선언의 속성 이름 :

[1] NSAttName
PrefixedAttName | DefaultAttName
[2] PrefixedAttName
'xmlns :' NCName
네임 스페이스 구속 : [예약 접두사와 네임 스페이스 이름
[3] DefaultAttName
'xmlns'
[4] NCName
Name- ( Char* ':' Char*)
NCNameStartChar NCNameChar*
( " :"비 XML ) Name Name

속성의 정규화 된 값 은 네임 스페이스를 식별하는 네임 스페이스 로의 URI 참조이거나 또는 빈 문자열이어야한다. 네임 스페이스 이름은 그것이 의도하는 목적을 감안하여 고유하고 지속적으로 관리해야한다. 존재하는 스키마 검색 취득에 직접적으로 사용할 수있는 것이 목표가 아니다. 이러한 목표를 염두에두고 설계 된 예로는 Uniform Resource Names [RFC2141] 가있다. 그러나 보통의 URL은 그런 방법으로 관리하고, 같은 목표를 얻을 수는 주 둔다. 정의 : 속성 이름 PrefixedAttName과 일치한다면 그 NCName가 이름 공간 접두사 를주고 그 속성 값의 네임 스페이스 이름 이 그 선언이 부여 된 요소의 시야에서 네임 스페이스 이름과 요소 이름 / 속성 이름과 연결에 이용된다.

정의 : 속성 이름 DefaultAttName과 일치한다면, 그 속성 값의 네임 스페이스 이름 이 그 선언이 부여 된 요소의 시야에서 기본 네임 스페이스 된다.

기본 네임 스페이스 및 선언 덮어 법은 요소 / 속성에 대한 네임 스페이스 관련 법률 절에 논의된다.

다음 예제에서는 네임 스페이스 접두사 " edi"네임 스페이스 이름 " http://ecommerce.example.org/schema"에 연결하는 네임 스페이스 선언이다 :

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
       for the "x" element and contents -->
</x>
네임 스페이스 구속 [예약 접두사와 네임 스페이스 이름
접두사 xml는 정의하여 네임 스페이스 이름 " http://www.w3.org/XML/1998/namespace"에 속박된다. 이 네임 스페이스는 :
  • 선언도 좋지만, 할 필요는 없다.
  • 다른 어떠한 네임 스페이스에도 속박되지 않아야한다.
  • 다른 접두사가이 네임 스페이스에 구애되어서는 안된다.
  • 기본 네임 스페이스로 선언되고는한다.
접두사 xmlns는 네임 스페이스 속박의 선언에만 이용되고 정의는 네임 스페이스 이름 " http://www.w3.org/2000/xmlns/"에 속박된다. 이 네임 스페이스는 :
  • 선언되지 않아야한다.
  • 다른 접두사가이 이름 공간에 구애되어서는 안된다.
  • 기본 네임 스페이스로 선언되고는한다.
  • 요소 이름은 접두사 " xmlns"이 안된다.
문자 대소를 구분하지 않고 아래로 머리가 " xml"에 일치하는 것 같은 다른 모든 접두사도 예약이다. 따라서 :
  • 이용자는 다음의 사양에서 정의 된 경우를 제외하고 그들을 이용해야 아니다.
  • 처리기는 그들을 치명적인 오류로 취급해서는 안된다.

접두사가 예약되지 않은해도 문자 대소를 구분하지 않고 아래로 LocalPart머리를 " xml"에 일치하는 이름의 사용은 접두사없이 사용 된 경우 예약이되어 버리므로 권유 없다.

유 수식 명

이 사양에 적합한 XML 문서에서는 일부의 이름 (비 종단 기호 에 해당하는 구문을 이용)은 다음에 정의되는 유 수식 명 으로 주어져야한다 : Name

[7] QName
PrefixedName | UnprefixedName
[8] PrefixedName
Prefix ':' LocalPart
[9] UnprefixedName
LocalPart
[10] Prefix
NCName
[11] LocalPart
NCName

접두사 ( Prefix)는 유 수식 명 을 이루는 네임 스페이스 접두사 를 제공하는 - 그것은 네임 스페이스 선언 안의 이름 공간 URI 참조에 연결되어야한다.

정의 : LocalPart유 수식 명 을 이루는 국소 부위 의 제공.

접두사는 네임 스페이스 이름의 자리 표시 자로 기능하는 것에주의. 응용 시야가 포함하고있는 문서를 초과하는 이름을 만들 때는 접두사가 아닌 네임 스페이스를 이용해야한다.

유 수식 명 이용

이 사양에 적합한 XML 문서에서 요소의 이름은 다음과 같이 유 수식 명 으로 주어진다 :

[12] STag
'<' QName( ) * ? '>'S AttributeAttributeS
네임 스페이스 구속 : [접두사는 선언 됨
[13] ETag
'</' ? '>'QName S
네임 스페이스 구속 : [접두사는 선언 됨
[14] EmptyElemTag
'<' QName( ) * ? '/>'S AttributeAttributeS
네임 스페이스 구속 : [접두사는 선언 됨

요소 이름 역할을하는 유 된 이름 의 예 :

  <!-- the 'price' element's namespace is http://ecommerce.example.org/schema -->
  <edi:price xmlns:edi='http://ecommerce.example.org/schema' units='Euro'>32.18</edi:price>

속성은 이름 공간 선언 되거나 또는 유 수식 명 으로 이름이 주어진다 :

[15] Attribute
NSAttName Eq AttValue | QName Eq AttValue
네임 스페이스 구속 : [접두사는 선언 됨
네임 스페이스 구속 : [접두사를 선언되지 않은하는 것은 없다]
네임 스페이스 구속 : [속성은 고유]

속성 이름 역할을하는 유 된 이름 의 예 :

<x xmlns:edi='http://ecommerce.example.org/schema'>
  <!-- the 'taxClass' attribute's namespace is http://ecommerce.example.org/schema -->
  <lineItem edi:taxClass="exempt">Baby food</lineItem>
</x>
네임 스페이스 구속 [접두사는 선언 됨
" xml"또는 " xmlns"이외의 이름 공간 접두사는, 그 접두사가 사용되는 요소의 시작 태그 또는 그 상위 요소 (즉, 접두사에 의한 마크 업이 그 내용 에 출현하는 요소) ]에서 이름 공간 선언 속성은 선언되어 있어야한다.
네임 스페이스 구속 [접두사를 선언되지 않은하는 것은 없다]
접두사 ( Prefix)을 선언 네임 스페이스 선언 에서는 (즉 NSAttNamePrefixedAttName되어있는 곳에서는), 속성 값 ( AttValue)은 비어 있으면 안된다.

이 구속에 의해 : 이름 공간 선언 속성이 XML 문서 엔티티 에 직접하지 않고, 외부 실체 선언 된 기본 속성을 통해 제공되고있는 곳에서는 연산의 어려움에 인도있다. 그러한 선언은 검증하지 않는 XML 처리기에 기반 소프트웨어에서 읽지 못할 수도있다. 많은 XML 응용은 아마도 네임 스페이스를 구별하는 것도 포함 [네임 스페이스] 검증의 처리 장치를 요구하지 않습니다. 이러한 응용에서 올바른 연산이 요구되는 경우 네임 스페이스 선언은 직접 공급되거나 또는 내부 부분 집합의 DTD 에서 선언 된 기본 속성을 통해 공급되어야한다.

요소 이름이나 속성 이름은 DTD 안의 선언에 출현하는 경우에는 유 수식 명 으로도 주어진다 :

[16] doctypedecl
'<! DOCTYPE' ( )? ? ( '['( | | ) * ' ?)?>'S QNameS ExternalIDSmarkupdeclPEReferenceSS
[17] elementdecl
'<! ELEMENT' ? '>'S QName S contentspec S
[18] cp
( QName| choice| seq) ( '?'| '*'| '+')?
[19] Mixed
'(' S? '#PCDATA'( S? '|' S? QName) * S? ') *'| '(' S? '#PCDATA' S? ')'
[20] AttlistDecl
'<! ATTLIST' * ? '>'S QName AttDefS
[21] AttDef
S( QName| NSAttName)S AttType S DefaultDecl

DTD의 유효성 검사는 다음과 같은 의미에서 이름 공간을 인식하지 못하는 것임을주의 : DTD는 문서에 나타나도 좋은 요소 나 속성을 (이름 공간 명, 국소 이름 )의 쌍으로는 없이 그 이름을 해석하지 않고 구속한다. 네임 스페이스를 사용하는 문서를 DTD를 맞대고 검증 할 때 각 인스턴스에 사용되는 접두사와 동일한 접두사가 DTD에서 사용되어야한다. 그러나 DTD는 이름 공간 선언 속성에 대해 " #FIXED"값을 제공하는 것으로, 유효한 문서에 사용 된 네임 스페이스를 간접적으로 구속 할 수있다.

요소 / 속성에 대한 네임 스페이스 관련 법률

네임 스페이스 시각

접두사를 선언 네임 스페이스 선언의 시각은 그것이 출현하는 시작 태그에서 끝 태그까지의 범위에서 더 내연 있으며, NSAttName부가 동일하게 같은 모든 [접두사를 선언 네임 스페이스 선언의 시야를 제외한 범위가된다. 빈 태그 사례의 시각은 그 태그 자신된다.

이러한 네임 스페이스 선언은 그 시야에 들어하고 그 선언에 지정된 접두사에 일치하는 접두사를 가지는 같은 모든 요소 이름 / 속성 이름에 적용된다.

접두사가 요소 이름 / 속성 이름에 해당하는 열기 이름 은 해당 접두어 ( Prefix)을 속박하는 URI네임 스페이스 에 있고 그 국소 부위 ( LocalPart)을 국소 이름 을 가진다.

<?xml version="1.0"?>

<html:html xmlns:html='http://www.w3.org/1999/xhtml'>

  <html:head><html:title>Frobnostication</html:title></html:head>
  <html:body><html:p>Moved to 
    <html:a href='http://frob.example.com'>here.</html:a></html:p></html:body>
</html:html>

다음의 예와 같이 단일 요소에 여러 네임 스페이스 접두사를 속성으로 선언 할 수있다 :

<?xml version="1.0"?>
<!-- both namespace prefixes are available throughout -->
<bk:book xmlns:bk='urn:loc.gov:books'
         xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <bk:title>Cheaper by the Dozen</bk:title>
    <isbn:number>1568491379</isbn:number>
</bk:book>

기본 네임 스페이스의 적용 방법

기본 네임 스페이스 선언의 시야는 더 내연의 기본 네임 스페이스 선언의 시야를 제외하고 그것이 출현하는 시작 태그에서 끝 태그까지 걸쳐있다. 빈 태그 사례의 시각은 그 태그 자신된다.

기본 네임 스페이스 선언은 그 시야에 들어가는 접두사없이 요소 이름에 적용된다. 기본 네임 스페이스 선언은 속성 이름에 직접 적용되지 않는다. 접두사가없는 특성의 해석은 그것이 출현하는 요소로 결정된다.

접두사없는 요소가있는 기본 네임 스페이스 선언의 시야에 들어가는 경우, 그 요소에 대응하는 열기 이름 은 그 기본 네임 스페이스URI네임 스페이스 에있는. 시야에 기본 네임 스페이스 선언이 없으면, 네임 스페이스는 값을 가지지 않는다. 접두사없는 속성 이름의 네임 스페이스 이름은 항상 값을 가지지 않는다. 어떤 사례에서도 국소 이름국소 부위 ( LocalPart)가된다 (물론 이것은 접두사없는 이름 자신과 동일).

<?xml version="1.0"?>
<!-- elements are in the HTML namespace, in this case by default -->
<html xmlns='http://www.w3.org/1999/xhtml'>
  <head><title>Frobnostication</title></head>
  <body><p>Moved to 
    <a href='http://frob.example.com'>here</a>.</p></body>
</html>
<?xml version="1.0"?>
<!-- unprefixed element types are from "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
</book>

네임 스페이스의 시야를 あてがう 약간 큰 예 :

<?xml version="1.0"?>
<!-- initially, the default namespace is "books" -->
<book xmlns='urn:loc.gov:books'
      xmlns:isbn='urn:ISBN:0-395-36341-6'>
    <title>Cheaper by the Dozen</title>
    <isbn:number>1568491379</isbn:number>
    <notes>
      <!-- make HTML the default namespace for some commentary -->
      <p xmlns='http://www.w3.org/1999/xhtml'>
          This is a <i>funny</i> book!
      </p>
    </notes>
</book>

기본 네임 스페이스 선언의 특성 값은 비어되고있다. 그 효과는 선언의 시각에는 기본 네임 스페이스는 없다]와 같게된다.

<?xml version='1.0'?>
<Beers>
  <!-- the default namespace inside tables is that of HTML -->
  <table xmlns='http://www.w3.org/1999/xhtml'>
   <th><td>Name</td><td>Origin</td><td>Description</td></th>
   <tr> 
     <!-- no default namespace inside table cells -->
     <td><brandName xmlns="">Huntsman</brandName></td>
     <td><origin xmlns="">Bath, UK</origin></td>
     <td>
       <details xmlns=""><class>Bitter</class><hop>Fuggles</hop>
         <pro>Wonderful hop, light alcohol, good summer beer</pro>
         <con>Fragile; excessive variance pub to pub</con>
         </details>
        </td>
      </tr>
    </table>
  </Beers>

속성 고유성

네임 스페이스 구속 : [속성은 고유]

이 사양에 적합한 XML 문서에서 어떤 태그도 다음 중 하나를 만족하는 복수의 속성을 포함하고는한다 :

이 구속은 어떤 요소에서도 열기 이름 이 동일하게 2 개의 속성은없는 것을 요구하는 것과 동일하다.

예를 들어 다음의 빈 요소 태그 " bad"는 모두 불법된다 :

<!-- http://www.w3.org is bound to n1 and n2 -->
<x xmlns:n1="http://www.w3.org" 
   xmlns:n2="http://www.w3.org" >
  <bad a="1"     a="2" />
  <bad n1:a="1"  n2:a="2" />
</x>

그러나 다음의 것은 모두 합법적된다. 두 번째 것은 속성 이름은 기본 네임 스페이스에는 적용되지 않기 때문에 합법적된다 :

<!-- http://www.w3.org is bound to n1 and is the default -->
<x xmlns:n1="http://www.w3.org" 
   xmlns="http://www.w3.org" >
  <good a="1"     b="2" />
  <good a="1"     n1:a="2" />
</x>

문서의 적합성

이 사양은 XMLXML 1.1 문서에 적용된다. 이 사양을 준수하기 위해서는 문서는 XMLXML 1.1 사양 [XML][XML11] 에 의거 정형식해야한다.

이 사양에 적합한 XML 문서에서 요소 이름 / 속성 이름 QName생성 규칙에 부합 돈까스 "네임 스페이스 구속"을 충족하여야한다. XMLXML 1.1 정형식이기 때문에 XML 생성 규칙 에 일치하는 것이 요구되는 문서의 다른 (요소 / 속성 이름이 아닌) 모든 토큰이 사양의 생성 규칙 에 따라야한다 . Name NameNCName

정의 :이 사양에 적합한 문서는 이름 공간 정형식 인 것으로 알려졌다.

따라서, 이름 공간 정형식 인 문서에서는 :

  • 요소 이름 / 속성 이름은 0 개 또는 1 개의 콜론 ( " :")를 포함한다.
  • [실체 이름 / 처리 명령 대상 / 기법 이름은 콜론을 포함하지 않는다.

또한, 이름 공간 정형식 되는 문서는 네임 스페이스에서 타당 될 수있다.

정의 : 이름 공간 정형식 인 문서는 다음을 모두 충족한다면 네임 스페이스에서 타당 하다고된다 :

  • XMLXML 1.1 에 근거하여 타당하다. XMLXML 1.1 에 준거 해 정형식으로되기 위해서는 문서의 요소 / 특성의 이름은 XML 생성 규칙 에 일치하는 것이 요구된다. Name Name
  • 문서의 토큰 중 요소 / 특성 이름을 제외한 모든이 사양의 생성 규칙 NCName에 일치하고있다.

따라서, 네임 스페이스에서 타당 문서에서는 다음과 같은 형식으로 선언 된 속성은 콜론을 포함하지 :

  • ID
  • IDREF
  • IDREFS
  • ENTITY
  • ENTITIES
  • NOTATION

처리 장치의 적합성

이 사양에 부합하기 위해서는 처리 장치는 이름 공간 정형식 위반을보고하여야한다. 그러나 네임 스페이스가 URI 참조 [RFC3986] 인지 여부의 검사는 요구되지 않는다.

정의 :이 사양에 적합한 XML 유효성 검사에 대한 처리기 중 네임 스페이스 타당성에 대한 위반을보고하는 것에 대해 네임 스페이스 검증 용 처리기 한다.

부록

이 절의 각 하위 절은 규범이 아니다.

XML 네임 스페이스의 내부 구조

이 부록은 삭제되었다.

버전 1.0에서의 변경 사항

이 버전은 2009 년 6 월 20 일 정오표 [1.0-Errata] [1.0-2e-Errata] 가 통합되어있다.

더 일관성을 위해 몇 가지 어법의 변경이나 추가를 포함 편집상의 변경 사항이있다. 참고 부록 "XML 네임 스페이스 내부 구조"는 삭제되었다.

제 5 판을 포함하는 XML 1.0의 모든 버전과 일치하도록 BNF를 조정했다.

감사

이 작업에는 많은 분들의 의견이 반영되어있다. 특히, W3C XML WG, Special Interest Group, W3C Metadata Activity 참가자들과 Microsoft의 Charles Frankston 씨에서 특히 귀중한 공헌에 감사한다.


폐지 된 생성 규칙

다음 2 개의 생성 규칙이 사양의 처음과 다음 버전에 있었지만 수정판이다. 더 이상 그들이 사용되는 것은 아니지만,이 사양 날짜가없는 버전에 대한 상호 참조 용으로 유지되고있다. [이 뜻은 버전 1.0, 1.1의 중첩으로 인해 발생한 중복 id를 변경하고 있기 때문에 (변경은이 절에 한함)이 상호 참조가 작동하지 않습니다. ]

NCNameStartChar정의에 원래 이용 된 XML 1.0의 Letter생성 규칙은 XML 1.0 제 5 판에서 이름 정의로 올바른 것은 없게되었으므로, NCNameStartChar생성 규칙은 XML 어떤 버전에 대해서도 올바른 결과를 얻을 수 있도록하기 위해 NCName에 근거한 정의로 변경되었다.

[5] NCNameChar
NameChar - ':'
( " :"비 XML NameChar) /* An XML NameChar, minus the ":" */
[6] NCNameStartChar
NCName- ( *)Char Char Char
( NCName첫 글자) /* The first letter of an NCName */

Note : Production NCNameStartChartakes advantage of the fact that a single-character NCNameis necessarily an NCNameStartChar, and works by subtracting from the set of NCNames of all lengths the set of all strings of two or more characters, leaving only the NCNames which are one character long .


참조 문헌

참조 문헌 (규범)

[RFC2119]
RFC 2119 : Key words for use in RFCs to Indicate Requirement Levels , S. Bradner, ed. IETF (Internet Engineering Task Force), March 1997. Available at http://www.rfc-editor.org/rfc/rfc2119.txt
[RFC2141]
RFC 2141 : URN Syntax , R. Moats, ed. IETF (Internet Engineering Task Force), May 1997. Available at http://www.rfc-editor.org/rfc/rfc2141.txt.
[RFC3986]
RFC 3986 : Uniform Resource Identifier (URI) : Generic Syntax , T. Berners-Lee, R. Fielding, and L. Masinter, eds. IETF (Internet Engineering Task Force), January 2005. Available at http : //www.rfc -editor.org/rfc/rfc3986.txt
[RFC3629]
RFC 3629 : UTF-8, a transformation format of ISO 10646 , F. Yergeau, ed. IETF (Internet Engineering Task Force), November 2003. Available at http://www.rfc-editor.org/rfc/rfc3629.txt
[RFC3987]
Internationalized Resource Identifiers (IRIs), M. Duerst and M. Suignard eds. January 2005. Available at http://www.rfc-editor.org/rfc/rfc3987.txt.
[XML]
Extensible Markup Language (XML) 1.0 , Tim Bray, Jean Paoli, CM Sperberg-McQueen, Eve Maler, and François Yergeau eds. W3C (World Wide Web Consortium). Available at http://www.w3.org/TR/REC -xml /.
Extensible Markup Language (XML) 1.0 (Fourth Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, and François Yergeau eds. W3C (World Wide Web Consortium), 16 August 2006. Available at http://www.w3.org/TR/2006/REC-xml-20060816/.
[XML11]
Extensible Markup Language (XML) 1.1 (Second Edition), Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau, and John Cowan eds. W3C (World Wide Web Consortium), 16 August 2006. Available at http://www.w3.org/TR/2006/REC-xml11-20060816/.


참고 문헌 (참고)

[1.0-Errata]
Namespaces in XML Errata . W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/xml-names-19990114-errata.
[1.0-2e-Errata]
Namespaces in XML (Second Edition) Errata . W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/2006/xml-names-errata.
[1.1-Errata]
Namespaces in XML 1.1 Errata. W3C (World Wide Web Consortium). Available at http://www.w3.org/XML/2004/xml-names11-errata.
[Relative-URI-deprecation]
Results of W3C XML Plenary Ballot on relative URI References In namespace declarations 3-17 July 2000 , Dave Hollander and CM Sperberg-McQueen 6 September 2000. Available at http://www.w3.org/2000/09/xppa.
[Requirements]
Namespaces in XML 1.1 Requirements, Jonathan Marsh, ed. W3C (World Wide Web Consortium), March 2002. Available at http://www.w3.org/TR/2002/WD-xml-names11-req-20020403/.