Tại sao chúng ta cần URI cho không gian tên XML?


23

Tôi đang cố gắng tìm hiểu tại sao chúng ta cần URI cho các không gian tên XML và tôi không thể tìm thấy mục đích cho điều đó. Bất cứ ai có thể làm sáng tôi một chút cho thấy việc sử dụng của họ trên một ví dụ cụ thể?

CHỈNH SỬA:

Ok, ví dụ: tôi có cái này từ 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>

Vậy nên http://www.w3schools.com/furnituregiữ cái gì?



7
Bắt buộc w3fools bình luận.
yannis

Vì vậy, các không gian tên XML phải ở định dạng URI? Hoặc tôi có thể sử dụng bất kỳ chuỗi nào như 'My.Namespace.Foo' không?
Mas

Câu trả lời:


20

Không gian tên là một cách để nói "Loại Foo này" khác với "Loại Foo đó", mặc dù chúng được đánh vần giống nhau. Hoặc, nếu bạn thích " MY loại Foo" khác với " Mọi người đều thích loại Foo".

Cách kỹ thuật để nói điều này là "URI của không gian tên của tôi cho Foo" khác với URI của mọi người cho không gian tên của họ cho Foo. Nói cách khác, URI chỉ là các chuỗi cho phép bạn nói như vậy.

Bí quyết sau đó là nói: "Này, URL là URI hợp lệ" và sau đó sử dụng URI tương ứng với một URL dưới sự kiểm soát của bạn. Nếu mọi người làm điều đó, thì bạn sẽ tránh được các va chạm không gian tên ngẫu nhiên. Bạn cũng có thể đã nói không gian tên "A" và không gian tên "B", nhưng bạn có nguy cơ người khác cũng sẽ sử dụng cùng một không gian tên, và sau đó loại Foo của bạn không khác với Foo của họ nữa, đó chính xác là những gì bạn muốn tránh .

Sau đó, bạn có thể thêm quy ước bổ sung vào các URL được sử dụng làm URI, ví dụ: URL phải tương ứng với một trang chứa tài liệu hoặc XSD hoặc tương tự, nhưng điều này là không cần thiết. Nó chỉ là thuận tiện.


Ok, nhưng sự khác biệt giữa không gian tên A và không gian tên w3.org/1999/xhtml là gì? cả hai đều có thể được sử dụng bởi người dùng mà họ không biết rằng họ đã sử dụng cùng một không gian tên.
Patryk

1
@Patryk, đó là lý do tại sao bạn sử dụng URL mà bạn có quyền kiểm soát. URL không gian tên xhtml nằm dưới sự kiểm soát của W3C, người đã xác định đặc tả XHTML.

2
@Patryk, cũng lưu ý rằng đó là những người xác định không gian tên được chọn URL. Sau đó, mọi người khác có thể sử dụng chúng.

1
Vì vậy, không gian tên asẽ hoàn toàn hợp lệ? Ngốc, nhưng hợp lệ? Hay nó phải là một URI?
Rudie

5
Sẽ không tuyệt vời sao nếu một vài người đầu tiên sử dụng quy ước đó nhiều năm trước cũng đã đưa tài liệu ngắn gọn súc tích về lược đồ của họ vào các URL đó để điều đó trở thành một điều? Không gian tên OpenXML của Microsoft schitions.openxmlformats.org/drawingml/2006/chart không có gì.
nguyên mẫu

16

Nói chung, bất kỳ định danh duy nhất nào sẽ phục vụ cho một không gian tên; nhưng vì nó được coi là duy nhất trên toàn cầu , nên tiêu chuẩn sẽ phải ủy quyền cho một số cơ quan trọng tài hoặc sử dụng một tài nguyên khác đồng thời là duy nhất trên toàn cầu nhưng dễ nắm bắt và chứng minh đó là của bạn.

Ôi nhìn kìa! nếu bạn có một tên miền, rõ ràng nó chỉ là của bạn và thật dễ dàng để chứng minh đó là của bạn!

Ví dụ, họ muốn tránh tình huống hai nhà sách khác nhau bắt đầu sử dụng "sách" làm không gian tên, với các định nghĩa bên trong hoàn toàn khác nhau. Trong khi họ sử dụng nó trong nội bộ, không có vấn đề gì; nhưng ngay khi một trong số họ muốn công bố đặc điểm kỹ thuật của họ, tất cả địa ngục vỡ ra.

Thay vào đó, nếu bạn được khuyến khích sử dụng tên miền của mình, bất kỳ ai (tốt, bất kỳ ai sở hữu tên miền) đều có thể xác định không gian tên riêng của họ với sự tự tin rằng không ai khác sẽ sử dụng cùng một mã định danh.

Là một phần thưởng, bạn có thể tùy ý lưu trữ định nghĩa về không gian tên của bạn tại URI, làm cho nó tự ghi lại.

Có vẻ như một ý tưởng tuyệt vời với tôi.


Cảm ơn câu trả lời nhưng tôi sẽ cần một cái gì đó cụ thể hơn để hiểu điều này. Tôi đã thêm một số mã mẫu mà bạn có thể dựa vào, xin hãy xem.
Patryk

1
@patryk - không có gì, đó không phải là một địa chỉ - nó chỉ là một mã thông báo duy nhất mà bạn chắc chắn không ai khác có thể trộn các tệp xml với. Tất cả những gì đang nói là tên <bảng> vv sẽ không được sử dụng với bất kỳ ý nghĩa khác nhau nào trong bất kỳ tệp xml nào có tên www.w3.org ở trên cùng
Martin Beckett

Ok nhưng khi wikipedia nói điều gì đó mà người dùng có thể sử dụng ví dụ w3.org/1999/xhtml làm không gian tên thì rất nhiều người sẽ có cùng một không gian tên. Tôi có đúng không
Patryk

@Patryk, chỉ khi bạn muốn sử dụng nó cho cùng một mục đích. Nếu bạn muốn xác định một không gian tên mới, bạn nên sử dụng tên miền của riêng mình
Javier

@Javier Ý của bạn là 'cùng sử dụng' là gì?
Patryk

1

DOM Cấp 2 được xuất bản vào cuối năm 2000. Nó đã giới thiệu chức năng "getEuityById" cũng như một mô hình sự kiện và hỗ trợ cho các không gian tên XML và CSS.

Những gì xmlIns chỉ định?
Là các nút thuộc tính có tên "xmlns" hoặc "xmlns: xxx", chính xác như các không gian tên được viết trong tài liệu XML nguồn. Đây là mô hình được trình bày bởi DOM.

URI chứa gì?
Một không gian tên XML được khai báo bằng cách sử dụng xmlns hoặc xmlns thuộc tính giả XML dành riêng, giá trị phải là tên không gian tên hợp lệ.

Ví dụ: khai báo sau ánh xạ tiền tố "xhtml:" vào không gian tên XHTML:

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

NHƯ tôi đã phát hiện ra sau khi đọc bài viết trên Wikipedia. URI chứa các đặc tả định dạng XML của không gian tên cung cấp một phương thức để tránh xung đột tên thành phần.

Có thể bạn biết tài liệu xml sử dụng XML Schemacho cấu trúc phần tử / bảng / lớp của các phần tử của tài liệu XML.

http://www.w3schools.com/f thất nên giữ gì?

Câu trả lời là trên trang của bạn nơi bạn đã tìm hiểu về Không gian tên XML. Kiểm tra Namespaces in Real Usephần trên bài viết này của W3Schools .

Kiểm tra liên kết sau của stackoverflow mà một số điều chứng minh rằng những gì URI này mang:

Làm cách nào để tạo và sử dụng không gian tên XML?


-1

Tên hoặc định danh duy nhất toàn cầu của URI = không gian tên

Xem xét việc xây dựng cơ sở dữ liệu hoặc tài liệu về quản lý tài chính hậu cần của ngành dầu khí. Điều đó sẽ cần phải sử dụng các từ vựng cụ thể (nghĩa là các thuật ngữ được kiểm soát) cho từng đối tượng: cơ sở dữ liệu, tài liệu, quản lý, tài chính, hậu cần, dầu mỏ và công nghiệp.

Nếu không có thuật ngữ nào trùng lặp trong bảy từ vựng này, thì chỉ cần một URI. Nhưng đối với mỗi thuật ngữ chồng lấp các thuật ngữ khác trên các từ vựng này, bạn cần có thêm một từ vựng cụ thể theo chủ đề được xác định trong URI hoặc IRI. Một cách xung quanh điều này là tạo ra một phân loại hợp nhất, với các điều khoản chung rộng hơn và các điều khoản cụ thể hẹp hơn.

Điều này sau đó có thể được mở rộng thành một từ điển đồng nghĩa cũng hiển thị các từ đồng nghĩa của thuật ngữ và cho phép đặc tả thuật ngữ ưa thích trong số các từ đồng nghĩa của thuật ngữ đó.


2
bài này khá khó đọc (tường văn bản). Bạn có phiền chỉnh sửa ing nó thành một hình dạng tốt hơn?
gnat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.