Xin quí vị đối chiếu với đính chính của tài liệu này để xem những sửa đổi quy chuẩn.
Xem thêm trang các bản dịch .
Ghi chú:
Xin xem bản quy chuẩn gốc trong tiếng Anh Namespaces in XML 1.0 (Second Edition) - 16/08/2006
Tuy đã cố gắng hết sức mình để duy trì nội dung của nguyên bản trong tiếng Anh, bản dịch có thể có những lỗi lầm do phiên dịch gây ra. Rất mong quý vị đối chiếu với bản gốc trong tiếng Anh để xem nội dung của nguyên bản.
Bản quyền © 2006 W3C ® ( MIT , ERCIM , Keio ), Toàn quyền bảo lưu. Những điều khoản trong luật pháp về nghĩa vụ pháp lý , tên thương mai và quyền sử dụng tài liệu của W3C đều được áp dụng.
Copyright © 2006 W3C ® ( MIT , ERCIM , Keio), All Rights Reserved. W3C liability, trademark and document use rules apply.
Tên miền không gian trong XML cung cấp một phương pháp đơn giản để tiêu chuẩn hóa tên các phần tử và tên các thuộc tính được sử dụng trong các bản tài liệu dùng Ngôn ngữ đánh dấu mở rộng bằng cách liên hệ chúng với các tên miền không gian được định danh bằng các tham chiếu URI.
Phần sau đây mô tả tình trạng hiện tại của bản tài liệu này, tại thời điểm công bố. Có thể có những bản tài liệu khác tồn tại là những bản mới hơn thay thế bản tài liệu này. Danh sách các công bố hiện tại của W3C và phiên bản gần đây nhất của bản báo cáo kỹ thuật này được đăng trên trang Danh mục các bản báo cáo kỹ thuật của W3C tại địa chỉ http://www.w3.org/TR/.
Bản tài liệu này là sản phẩm của Nhóm điều hành chủ trốt về XML , một phần của Hoạt động của W3C trong phạm vi XML . Phiên bản tiếng Anh của bản đặc tả này là phiên bản quy chuẩn duy nhất. Tuy nhiên, nếu quí vị muốn xem bản dịch của tài liệu này, xin truy cập địa chỉ http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-names .
Những thực hiện được biết đến của bản tài liệu này được ghi chép trong Bản báo cáo về thực hiện tên miền không gian 1.1 (tất cả những thực hiện được biết đến của phiên bản Các tên miền không gian 1.1 đều hỗ trợ những tính năng của phiên bản Các tên miền không gian 1.0). Một bộ phần mềm dùng để thử nghiệm cũng được đăng trên trang Bộ thử nghiệm XML nữa.
Xuất bản lần thứ Hai này hội tụ các chỉnh sửa cần phải thực hiện được biết đến tại thời điểm công bố. Phiên bản này thay thế phiên bản Tiến cử của W3C ngày 14 tháng 1 năm 1999 trước đây.
Xin quí vị vui lòng thông báo những lỗi lầm trong bản tài liệu này tới địa chỉ xml-names-editor@w3.org ; Các bản văn thư lưu trữ công khai cũng có sẵn. Bản chỉnh lý của tài liệu này được đăng tại địa chỉ http://www.w3.org/XML/2006/xml-names-errata .
Bản tài liệu này đã được các Hội viên của W3C, các nhà sản xuất phần mềm, và các nhóm W3C khác cũng như các bên quan tâm xét duyệt và đã được Giám đốc tán thành là một Tiến Cử của W3C. Bản tài liệu này khá ổn định và nó có thể được sử dụng như nguồn tài liệu tham chiếu hoặc nguồn trích dẫn từ những tài liệu khác. Nhiệm vụ của W3C trong việc kiến tạo bản Tiến Cử này là nhằm thu hút sự chú ý tới bản đặc tả và khuyến khích sự triển khai rộng rãi của nó. Việc làm này tăng cường chức năng và hoạt động tương giao của liên mạng Web.
W3C duy trì một bản danh sách công khai về những tiết lộ bí mật bằng sáng chế , là bản liệt kê các thành tựu của nhóm; trang đó còn bao gồm các hướng dẫn về việc tiết lộ bí mật một phát minh. Cá nhân nào có kiến thức cụ thể về một phát minh nào mà họ cho là có chứa đựng những khai man về bản quyền phải tiết lộ tin tức đúng theo quy định như đã đặt ra trong phần 6 của Chính sách về bằng phát minh của W3C
1 Động cơ và tóm tắt nội
dung
1.1 Ghi chú về ký hiệu và cách sử
dụng
2 Tên miền không gian trong XML
2.1 Khái niệm cơ bản
2.2 Cách sử dụng URI làm tên của tên
miền không gian
2.3 So sánh các tham chiếu URI
3 Công bố tên miền không gian
4 Tên tiêu chuẩn
5 Sử dụng các tên tiêu chuẩn
6 Áp dụng tên miền không gian vào các
phần tử và thuộc tính
6.1 Giới hạn phạm vi của tên miền
không gian
6.2 Mặc định hóa tên miền không
gian
6.3 Tính độc nhất vô nhị của các
thuộc tính
7 Tính hợp thức của các tài liệu
8 Tính hợp thức của các bộ xử
lý
A Tham chiếu quy chuẩn
B Những tham chiếu khác (Không quy chuẩn)
C Cấu trục bên trong tên miền không gian của
XML (Không quy chuẩn)
D Những thay đổi kể từ phiên bản 1.0
(Không quy chuẩn)
E Thừa nhận (Không quy chuẩn)
Chúng tôi hình dung ứng dụng của Ngôn ngữ đánh dấu mở rộng , mà trong đó, một bản tài liệu XML có thể chứa đựng các phần tử và các thuộc tính (được ám chỉ đến như một "từ vựng dấu đánh" ở đây) được định nghĩa cho và sử dụng bởi bội số các môđun phần mềm . Một động cơ để làm việc này là động cơ về tính môđun hóa : nếu có tồn tại một từ vựng dấu đánh như vậy và chúng đã được thấu hiểu và chúng có thể được sử dụng để tạo nên phần mềm hữu dụng, thì việc tái sử dụng chúng tốt hơn là việc tái tạo lại cái mới.
Do chứa đựng bội số các từ vựng dấu đánh, những tài liệu này làm nảy sinh vấn đề về việc nhận dạng và vấn đề về xung đột. Các môđun phần mềm cần phải có khả năng nhận dạng các phần tử và các thuộc tính mà nó được thiết kế để xử lý, ngay cả khi đối mặt với những "xung đột" xảy ra, tức là những lúc dấu đánh được chủ định dành cho gói phần mềm khác lại sử dụng cùng một tên phần tử hoặc tên thuộc tính.
Những cân nhắc trên đòi hỏi các cấu trúc tài liệu phải có các tên được kiến tạo với một hình thức tránh được sự trùng lặp giữa các tên trong các từ vựng dấu đánh. Bản đặc tả này miêu tả một cơ cấu, được gọi là tên miền không gian trong XML , nhằm hòa giải việc này bằng cách chỉ định những tên đã được khai triển cho các phần tử và các thuộc tính.
Nơi nào được NHẤN MẠNH, các từ chìa khóa NHẤT ĐỊNH PHẢI, NHẤT ĐỊNH KHÔNG ĐƯỢC, ĐÒI HỎI, NÊN, KHÔNG NÊN, CÓ THỂ trong bản tài liệu này cần phải được hiểu như đã miêu tả trong [Từ chìa khóa].
Chú ý, nhiều từ không thuộc đầu cuối trong các dẫn xuất nói đến trong bản đặc tả này không được định nghĩa ở đây, song chúng được định nghĩa trong bản đặc tả [XML]. Khi những từ không thuộc đầu cuối không được định nghĩa ở đây có cùng tên với những từ không thuộc đầu cuối được định nghĩa trong bản đặc tả XML, những dẫn xuất của chúng trong bài này, trong mọi trường hợp, hợp với một phần các dòng chữ của những từ tương ứng trong bản đó.
Đối với những dẫn xuất trong bản tài liệu này NSC
là "Quy chế của tên miền không gian"
, một trong những quy định mà những tài liệu hợp thức với
bản đặc tả này NHẤT ĐỊNH PHẢI tuân theo.
[ Định nghĩa : Tên miền không gian trong XML được biểu thị và nhận dạng bằng một tham chiếu URI [RFC3986]; Bằng cách sử dụng cơ cấu được miêu tả trong bản đặc tả này, các tên của phần tử và các tên của thuộc tính có thể được đặt vào một tên miền không gian trong XML.]
[ Định nghĩa : Một cái tên đã được khai
triển là một cặp bao gồm một cái tên của tên miền không
gian và một cái tên
địa phương . ] [ Định nghĩa : Đối với một cái
tên N
trong một tên miền không gian được
định dạng bằng tham chiếu URI
I
thì cái tên của tên miền không gian
chính là I
(tức là URI). Đối với một cái
tên N
nào đấy, mà nó không phải là một
tên miền không gian, thì cái tên của tên miền không gian
ấy sẽ không có giá trị. ] [ Định nghĩa : Trong bất cứ
trường hợp nào, tên địa phương chính là
N
. ] Chính nhờ sự kết hợp của tên miền
không gian IRI
được quản lý trên diện bàn toàn cầu này, cùng với các
tên địa
phương trong từ vựng , mà chúng ta tránh được sự trùng
lặp về tên.
Trong các tham chiếu URI có thể có những chữ không cho phép được dùng trong các tên, và thường là chúng khá dài, rất bất tiện, vì thế cho nên những tên đã được khai triển không được sử dụng trực tiếp để đặt tên cho các phần tử và các thuộc tính trong tài liệu XML. Thay vào đó, những tên tiêu chuẩn được sử dụng. [ Định nghĩa : Tên tiêu chuẩn là một cái tên lệ thuộc vào sự phiên dịch tên miền không gian . ] Trong các tài liệu hợp thức với bản đặc tả này, các tên phần tử và tên thuộc tính đều là những tên tiêu chuẩn. Về cú pháp mà nói, chúng hoặc là những tên tiền tố hoặc những tên không tiền tố . Cú pháp về khai báo dùng thuộc tính được cung cấp để ràng buộc và ghép các tiền tố với những tên của tên miền không gian, đồng thời cũng để ràng buộc và ghép tên miền không gian mặc định với các tên phần tử không tiền tố mà nó được chủ định; những khai báo thuộc tính này được giới hạn phạm vi bên trong các phần tử nơi chúng xuất hiện, hầu cho những sự ràng buộc tên, tiền tố, phần tử khác nhau có thể được áp dụng trong những phần khác nhau của một bản tài liệu. Các bộ xử lý hợp thức với bản đặc tả này NHẤT ĐỊNH PHẢI nhận biết và hành động khi gặp những khai báo và những tiền tố này.
Dòng chữ trống , tuy là một tham chiếu URI hợp lệ, song không thể sử dụng làm tên của tên miền không gian.
Việc sử dụng các tham chiếu URI tương đối , bao gồm cả các tham chiếu tới cùng một bản tài liệu , khi khai báo tên miền không gian là một việc không được tán thành nữa .
Ghi chú:
Sự phản đối việc sử dụng các tham chiếu URI tương đối đã do cuộc bầu phiếu kín toàn thể ban phụ trách XML của W3C quyết định. Xem [Phản đối việc sử dụng URI tương đối] . Họ cũng công bố rằng "những bản đặc tả sau này như DOM, XPath, vân vân sẽ không định nghĩa phần phiên dịch cho chúng".
Các tham chiếu URI đại diện cho tên miền không gian được so sánh khi muốn xác định xem một cái tên có trực thuộc một tên miền không gian cho trước hay không, hoặc xem hai cái tên có cùng trực thuộc một tên miền không gian hay không. [ Định nghĩa : Hai URI được đối xử như hai dòng chữ, và chúng được coi là giống hệt nhau khi, và chỉ khi, hai dòng chữ hoàn toàn đồng nhất, có nghĩa là, nếu chúng có cùng một chuỗi các ký tự. ] Sự so sánh này phân biệt dạng chữ , và việc sử dụng ký tự ''%'' để thoát dấu không được tính đến .
Hậu quả của việc này là các tham chiếu URI tuy không giống nhau hoàn toàn, theo định nghĩa trên, song có thể lại được phân giải về cùng một nguồn tài nguyên. Những ví dụ có thể nêu lên bao gồm các ví dụ về tham chiếu URI chỉ khác nhau về dạng chữ, hoặc chỉ khác nhau vì việc sử dụng ký tự thoát dấu "%", hoặc chúng là những thực thể ngoại biên là những cái có những gốc URI khác (song nên chú ý các URI tương đối dùng để làm tên của tên miền không gian hiện đã bị phản đối và không nên dùng nữa).
Trong việc khai báo tên miền không gian, tham chiếu URI là giá trị đã được bình thường hóa của thuộc tính, cho nên việc thay thế các chữ trong XML và các tham chiếu thực thể, được làm xong trước, trước khi so sánh.
Ví dụ:
Các tham chiếu URI dưới đây đều là những tham chiếu khác nhau trong khi định dạng tên miền không gian, vì dạng chữ của chúng khác nhau:
http://www.example.org/wine
http://www.Example.org/wine
http://www.example.org/Wine
Các tham chiếu IRI dưới đây cũng được coi là khác nhau trong khi nhận dạng tên miền không gian:
http://www.example.org/~wilbur
http://www.example.org/%7ewilbur
http://www.example.org/%7Ewilbur
Do khả năng nhầm lẫn dễ xảy ra giữa những URI tương đương khi được phân giải , việc sử dụng các ký hiệu thoát dấu "%" trong tên của tên miền không gian là một việc làm chúng tôi hết sức can ngăn .
[ Ðịnh nghĩa : Tên miền không gian (hay nói chính xác hơn việc ghép tên miền không gian) được khai báo dùng một hệ thống các thuộc tính dành riêng . Một tên thuộc tính như vậy nhất định phải hoặc là xmlns hoặc bắt đầu bằng xmlns:. Những thuộc tính này, tương tự như những thuộc tính XML khác, có thể được cung cấp trực tiếp hoặc bằng giá trị mặc định . ]
[1] | NSAttName |
::= | PrefixedAttName |
|
| DefaultAttName |
||||
[2] | PrefixedAttName |
::= | 'xmlns:' NCName |
[Quy chế tên miền không gian: Các tiền tố và tên của tên miền không gian dành riêng ] |
[3] | DefaultAttName |
::= | 'xmlns' |
|
[4] | NCName |
::= | NCNameStartChar NCNameChar* |
/* Một cái tên XML, đã bỏ dấu hai chấm ":" */ |
[5] | NCNameChar |
::= | NameChar -
':' |
|
[6] | NCNameStartChar |
::= | Letter |
'_' |
Giá trị đã được bình thường hóa của thuộc tính NHẤT ĐỊNH PHẢI hoặc là một tham chiếu URI — tên của tên miền không gian đại diên cho tên miền không gian — hoặc là một dòng chữ trống. Tên của tên miền không gian, để phục vụ cho mục đích đã dự định trước, NÊN có tính độc nhất vô nhị (không có hai tên trùng nhau) và có tính bền bỉ . Mục đích ở đây không phải là sử dụng nó trực tiếp trong việc thu hồi bản giản đồ (nếu có tồn tại một cái nào đó). Các Tên Tài nguyên Đồng nhất [RFC2141] là ví dụ về một cú pháp được thiết kế với mục đích này trong tư tưởng. Đương nhiên, chúng ta nên nhớ rằng các URL thông thường có thể được quản lý (điều khiển) dưới một hình thức cho phép chúng ta đạt được cùng một mục đích.
[ Định nghĩa : Nếu tên thuộc tính hợp với mẫu hình PrefixedAttName , thì NCName cho chúng ta tiền tố của tên miền không gian. Tiền tố này được sử dụng để liên hệ các tên phần tử và các tên thuộc tính với tên của tên miền không gian trong giá trị thuộc tính nằm bên trong phạm vi giới hạn của phần tử, nơi chúng được khai báo. Đối với những khai báo như vậy, tên của tên miền không gian không thể để trống được. ]
[ Định nghĩa : Nếu tên thuộc tính hợp với mẫu hình DefaultAttName , thì tên của tên miền không gian trong giá trị thuộc tính là tên của tên miền không gian mặc định trong phạm vi của phần tử nơi chúng được khai báo.] Tên miền không gian mặc định và việc lấn quyền trong các khai báo được bàn luận trong phần 6 Áp dụng tên miền không gian vào các phần tử và các thuộc tính .
Một ví dụ về sự khai báo tên miền không gian, liên hệ
tiền tố của tên miền không gian edi với tên của tên
miền không gian http://ecommerce.example.org/schema
:
<x xmlns:edi='http://ecommerce.example.org/schema'> <!-- tiền tố "edi" được ràng buộc với http://ecommerce.example.org/schema cho phần tử "x" và các nội dụng --> </x>
Quy chế của tên miền không gian: Các tên tiền tố và tên miền không gian dành riêng
Tiền tố xml, theo định nghĩa, được ghép với tên
của tên miền không gian
http://www.w3.org/XML/1998/namespace
. Nó CÓ THỂ, song không nhất thiết,
phải được khai báo, và NHẤT ĐỊNH KHÔNG ĐƯỢC bị
ràng buộc với bất cứ tên của tên miền không gian nào khác.
Các tiền tố khác NHẤT ĐỊNH KHÔNG ĐƯỢC
ràng buộc với tên của tên miền không gian này, và nó NHẤT ĐỊNH KHÔNG
ĐƯỢC khai báo làm tên miền không gian mặc định.
Tiền tố xmlns chỉ được
sử dụng để khai báo những ràng buộc tên miền không gian và,
theo định nghĩa đã được ràng buộc với tên của tên miền
không gian http://www.w3.org/2000/xmlns/
. Tiền tố này NHẤT ĐỊNH KHÔNG
ĐƯỢC dùng để khai báo. Các tiền tố khác NHẤT ĐỊNH KHÔNG
ĐƯỢC ràng buộc với tên của tên miền không gian này, và
nó NHẤT ĐỊNH
KHÔNG ĐƯỢC khai báo làm tên miền không gian mặc định.
Các tên phần tử NHẤT ĐỊNH KHÔNG ĐƯỢC có
tiền tố xmlns
.
Tất cả các tiền tố khác bắt đầu với chuỗi ba ký tự x, m, l, trong bất cứ tổ hợp nào, đều là các tiền tố dành riêng. Điều này có nghĩa là:
người dùng KHÔNG NÊN sử dụng chúng trừ phi cách sử dụng này được định nghĩa trong những bản đặc tả sau này
các bộ xử lý NHẤT ĐỊNH KHÔNG ĐƯỢC đối xử với chúng như các lỗi nghiêm trọng .
Tuy bản thân chúng không phải là những cái dành riêng, song chúng tôi khuyên không nên sử dụng các tên tiền tố trong đó LocalPart bắt đầu bằng các chữ x, m, l, trong bất cứ tổ hợp nào, vì các tên này có thể trở thành các tên dành riêng nếu được sử dụng nguyên, không có tiền tố
Trong các bản tài liệu XML hợp thức với bản đặc tả này, một số các tên (các cấu trúc tương ứng với mẫu hình của từ không thuộc đầu cuối tên NHẤT ĐỊNH PHẢI được coi như các tên tiêu chuẩn , và được định nghĩa như sau:
[7] | QName |
::= | PrefixedName |
| UnprefixedName |
|||
[8] | PrefixedName |
::= | Prefix ':' LocalPart |
[9] | UnprefixedName |
::= | LocalPart |
[10] | Prefix |
::= | NCName |
[11] | LocalPart |
::= | NCName |
Prefix cung cấp phần tiền tố của tên miền không gian cho tên tiêu chuẩn, và NHẤT ĐỊNH PHẢI được liên kết với một tham chiếu URI tên miền không gian trong việc khai báo tên miền không gian . [Định nghĩa: The LocalPart cung cấp phần địa phương của tên tiêu chuẩn.]
Nên lưu ý rằng tiền tố chỉ giữ chức năng chỉ tương tự như một chỗ chứa dành cho tên của tên miền không gian mà thôi. Các chương trình ứng dụng NÊN sử dụng tên của tên miền không gian, và không được sử dụng tiền tố, trong việc cấu thành các tên mà phạm vi của chúng mở rộng ra bên ngoài phạm vi của bản tài liệu chứa đựng chúng.
Trong các bản tài liệu XML hợp thức với bản đặc tả này, các tên phần tử được coi như các tên tiêu chuẩn , như sau:
[12] | STag |
::= | '<' QName (S Attribute)* S? '>' |
[Quy chế tên miền không gian: Tiền tố đã khai báo] |
[13] | ETag |
::= | '</' QName S? '>' |
[Quy chế tên miền không gian: Tiền tố đã khai báo] |
[14] | EmptyElemTag |
::= | '<' QName (S Attribute)* S? '/>' |
[Quy chế tên miền không gian: Tiền tố đã khai báo] |
Một ví dụ về tên tiêu chuẩn được sử dụng như một tên phần tử:
<!-- Tên miền không gian của phần tử 'price' là http://ecommerce.example.org/schema --> <edi:price xmlns:edi='http://ecommerce.example.org/schema' units='Euro'>32.18</edi:price>
Các thuộc tính là những khai báo tên miền không gian , hoặc là tên của chúng được coi như là tên tiêu chuẩn :
[15] | Attribute |
::= | NSAttName Eq AttValue |
|
| QName Eq AttValue |
[Quy chế tên miền không gian: Tiền tố đã khai báo] |
Một ví dụ của tên tiêu chuẩn được sử dụng như một tên thuộc tính:
<x xmlns:edi='http://ecommerce.example.org/schema'> <!-- Tên miền không gian của thuộc tính 'taxClass' là http://ecommerce.example.org/schema --> <lineItem edi:taxClass="exempt">Baby food</lineItem> </x>
Quy chế tên miền không gian: Tiền tố đã khai báo
Tiền tố của tên miền không gian, trừ phi nó là
xml
hoặc xmlns
, NHẤT ĐỊNH PHẢI được khai
báo trong một thuộc tính khai báo tên miền không gian trong thẻ mở
của phần tử, nơi tiền tố được sử dụng, hoặc trong một
phần tử nguyên
thủy đã có trước (chẳng hạn một phần tử có một
dấu đánh có tiền
tố trong nội dung của nó).
Quy chế này có thể dẫn đến những khó khăn về hoạt động trong trường hợp thuộc tính khai báo tên miền không gian đã được cung cấp, không trực tiếp trong thực thể tài liệu XML, song thông qua một thuộc tính mặc định được khai báo trong một thực thể ở bên ngoài . Những khai báo như vậy có thể không được phần mềm đọc, do dựa vào bộ xử lý XML không kiểm duyệt. Nhiều chương trình ứng dụng XML, ngay cả những cái mẫn cảm với tên miền không gian , cũng quyên, không đòi hỏi các bộ xử lý có tính kiểm duyệt . Nếu chương trình ứng dụng đòi hỏi phải thi hành đúng đắn, thì sự khai báo tên miền không gian NHẤT ĐỊNH PHẢI được cung cấp, hoặc là trực tiếp hoặc là thông qua các thuộc tính mặc định được khai báo trong nội phân nhóm của DTD .
Các tên phần tử và tên thuộc tính được coi như là tên tiêu chuẩn khi chúng được khai báo trong DTD :
[16] | doctypedecl |
::= | '<!DOCTYPE' S QName (S ExternalID)? S? ('[' (markupdecl | PEReference |
S)* ']' S?)? '>' |
[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 AttDef* S? '>' |
[21] | AttDef |
::= | S (QName | NSAttName)
S AttType S DefaultDecl |
Lưu ý, sự
kiểm duyệt dùng DTD là sự kiểm duyệt không quan tâm đến
tên miền không gian , theo nghĩa sau đây: DTD quản chế các phần tử
và các thuộc tính xuất hiện trong bản tài liệu bằng các tên
chưa phiên dịch của chúng, chứ không quản chế bằng các cặp
(tên của tên miền không gian, tên địa phương). Để kiểm
duyệt một bản tài liệu sử dụng các tên miền không gian
với DTD, các tiền tố được sử dụng trong DTD phải giống
hệt các tiền tố được dùng trong bản tài liệu , nơi chúng được sử
dụng. Tuy vậy, một DTD có thể quản chế các tên miền không
gian được sử dụng trong một bản tài liệu có giá trị một
cách gián tiếp, bằng cách cung cấp các giá trị cố định
(#FIXED
) cho các thuộc tính khai báo tên miền không
gian.
Giới hạn phạm vi của một khai báo tên miền không gian tuyên bố phạm vi của tiền tố bắt đầu từ thẻ mở, nơi nó xuất hiện cho đến điểm kết cục của thẻ đóng tương ứng với thẻ mở trên, ngoại trừ phạm vi của bất cứ những khai báo nào bên trong, với cùng phần NSAttName. Trong trường hợp một thẻ trống, phạm vi của nó là ở tại chính bản thân thẻ .
Một sự khai báo tên miền không gian như vậy sẽ được áp dụng cho tất cả các phần tử và các tên thuộc tính bên trong phạm vi của nó, tức những cái có tiền tố giống với những gì đã được xác định trong phần khai báo.
Tên đã được khai triển cũng tương đương như một phần tử có tiền tố, hoặc tên thuộc tính có URI mà tiền tố đã được ràng buộc để làm tên của tên miền không gian của nó, và phần địa phương làm tên địa phương của nó.
<?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>
Bội số các tiền tố của tên miền không gian có thể được khai báo như các thuộc tính của một phần tử, như được thể hiện trong ví dụ sau đây:
<?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>
Phạm vi của khai báo tên miền không gian mặc định trải rộng từ phần mở đầu của thẻ mở, nơi nó xuất hiện, cho đến điểm cuối cùng của thẻ đóng tương ứng, ngoại trừ phạm vi của bất cứ những khai báo tên miền không gian mặc định nào bên trong. Trong trường hợp một thẻ trống, phạm vi của nó ở tại chính bản thân thẻ.
Một khai báo tên miền không gian mặc định được áp dụng cho tất cả các tên phần tử không tiền tố bên trong phạm vi của nó. Những khai báo tên miền không gian mặc định không áp dụng trực tiếp tới các tên thuộc tính; nghĩa của các thuộc tính không tiền tố là do phần tử, nơi nó xuất hiện, xác định.
Nếu có một khai báo tên miền không gian mặc định nằm trong phạm vi, thì tên đã được khai triển tương ứng với một tên phần tử không tiền tố lấy URI của tên miền không gian mặc định làm cái tên của tên miền không gian của nó. Nếu không có sự khai báo tên miền không gian mặc định trong phạm vi, thì tên của tên miền không gian sẽ không có giá trị. Tên của tên miền không gian cho một cái tên thuộc tính không tiền tố là một cái tên luôn luôn không có giá trị . Trong mọi trường hợp, tên địa phương chính là phần địa phương (và đương nhiên nó tương tự như chính bản thân cái tên không tiền tố vậy).
<?xml version="1.0"?>
<!-- các phần tử nằm trong tên miền không gian HTML, trong trường hợp này, do mặc định -->
<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"?> <!-- Các kiểu phần tử không tiền tố bắt nguồn từ "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>
Một ví dụ lớn hơn về việc khoanh phạm vi tên miền không gian:
<?xml version="1.0"?>
<!-- Mở đầu, tên miền không gian mặc định là "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>
<!-- Biến HTML thành tên miền không gian mặc định cho vài dòng chú thích -->
<p xmlns='http://www.w3.org/1999/xhtml'>
This is a <i>funny</i> book!
</p>
</notes>
</book>
Giá trị thuộc tính trong khai báo tên miền không gian mặc định CÓ THỂ trống rỗng. Sự để trống này gây ảnh hưởng tương tự như ảnh hưởng của việc không có tên miền không gian mặc định trong phạm vi của sự khai báo.
<?xml version='1.0'?> <Beers> <!-- tên miền không gian mặc định trong bảng là cái của HTML --> <table xmlns='http://www.w3.org/1999/xhtml'> <th><td>Name</td><td>Origin</td><td>Description</td></th>
<tr> <!-- không có tên miền không gian mặc định trong các ô bảng --> <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>
Trong các bản tài liệu XML hợp thức với bản đặc tả này, một thẻ không thể có hai thuộc tính, và chúng:
có tên giống nhau hoàn toàn, hoặc
có tên tiêu chuẩn với cùng một phần địa phương và với các tiền tố đã ràng buộc với các tên của tên miền không gian giống nhau hoàn toàn.
Quy chế này tương tự như việc đòi hỏi không một phần tử nào có hai thuộc tính với tên đã được khai triển của chúng giống nhau.
Lấy ví dụ, mỗi trường hợp của những thẻ không phần
tử bad
sau đây bị coi là bất hợp pháp:
<!-- http://www.w3.org được ràng buộc với n1 và n2, giống nhau hoàn toàn --> <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>
Song, mỗi cái trong phần sau đều hợp pháp. Cái thứ hai hợp pháp là vì tên miền không gian mặc định không áp dụng cho các tên thuộc tính:
<!-- http://www.w3.org được ràng buộc với n1 và là tên miền không gian mặc định --> <x xmlns:n1="http://www.w3.org" xmlns="http://www.w3.org" > <good a="1" b="2" /> <good a="1" n1:a="2" /> </x>
Bản đặc tả này áp dụng cho các bản tài liệu XML 1.0. Để hợp thức với bản đặc tả này, bản tài liệu NHẤT ĐỊNH PHẢI hoàn chỉnh về ngữ pháp như đã đề ra trong bản đặc tả XML 1.0 [XML10].
Trong các bản tài liệu XML hợp thức với bản đặc tả này, các tên phần tử và tên thuộc tính NHẤT ĐỊNH PHẢI hợp với dẫn xuất trong biểu thức QName và NHẤT ĐỊNH PHẢI thỏa mãn "các quy chế về tên miền không gian" . Tất cả các mã hiệu khác là những cái ĐÒI HỎI phải hợp với dẫn xuất của biểu thức Name trong XML, để phù hợp với tính hoàn chỉnh về ngữ pháp của XML 1.0, NHẤT ĐỊNH PHẢI hợp với dẫn xuất của biểu thức NCName trong bản đặc tả này.
[Định nghĩa: Một bản tài liệu được gọi là hoàn chỉnh về ngữ pháp để làm tên miền không gian nếu nó hợp thức với bản đặc tả này. ]
Tiếp theo, bản tài liệu có tên miền không gian hoàn chỉnh:
Tất cả các tên phần tử và tên thuộc tính phải, hoặc là không có, hoặc là có một dấu hai chấm;
Các tên thực thể, các mục tiêu chỉ lệnh xử lý , hoặc các tên chú thích , không được phép có bất cứ dấu hai chấm nào trong chúng.
Thêm vào đó, một bản tài liệu hoàn chỉnh về ngữ pháp tên miền không gian còn có thể là một tên miền không gian hợp pháp .
Một bản tài liệu đúng ngữ pháp về tên miền không gian là một tên miền không gian hợp pháp nếu, theo như bản đặc tả XML 1.0 đã đề ra, nó hợp pháp và tất cả những mã hiệu không thuộc các tên phần tử và các tên thuộc tính, là những cái ĐÒI HỎI phải hợp với dẫn xuất của biểu thức Name trong XML, để phù hợp với tính hợp pháp của XML 1.0, phải hợp với biểu thức NCName trong bản đặc tả này.]
Tiếp theo, trong một bản tài liệu hợp pháp làm tên miền không gian:
Các thuộc tính với kiểu dữ liệu khai báo ID, IDREF(S), ENTITY(IES), hoặc NOTATION đều không được phép có bất cứ một dấu hai chấm dấu hai chấm nào trong chúng.
Để hợp thức với bản đặc tả này, bộ xử lý NHẤT ĐỊNH PHẢI báo cáo các vi phạm về ngữ pháp trong tên miền không gian, trừ phi nó không ĐÒI HỎI phải kiểm duyệt xem các tên của tên miền không gian có phải là các URI hợp pháp hay không.
[Định nghĩa: Một bộ xử lý XML có tính kiểm duyệt hợp thức với bản đặc tả này được gọi là có tính kiểm duyệt tên miền không gian nếu bên cạnh hoạt động bình thường, nó còn báo cáo các vi phạm về tính hợp pháp của tên miền không gian. ]
Phiên bản này hội tụ các đính chính vào ngày 1 tháng 6 năm 2006 [Đính chính 1.0] .
Có một số thay đổi của ban biên tập, bao gồm cả một số thay đổi về thuật ngữ và những phần cho thêm với mục đích nâng cao tính thống nhất. Phần phụ lục không quy chuẩn "Cấu trúc bên trong của tên miền không gian trong XML" đã bị hủy bỏ.
Công trình này phản ảnh sự đóng góp của một số thành viên rất lớn, bao gồm đặc biệt là sự tham gia của các thành viên trong Nhóm điều hành về XML và Nhóm chuyên tâm đặc biệt của Thương hội liên mạng toàn thế giới và sự tham gia của nhiều thành viên trong Hoạt động kiến trúc dữ liệu của W3C . Sự đóng góp của Charles Frankston tại Microsoft đặc biệt có giá trị.