Bài đăng nổi bật


Quy tắc tài liệu XML

Tổng quan: Quy tắc tài liệu XML

Nếu bạn đã xem các tài liệu HTML, bạn sẽ quen với các khái niệm cơ bản về sử dụng thẻ để đánh dấu văn bản của tài liệu. Phần này thảo luận về sự khác biệt giữa các tài liệu HTML và tài liệu XML. Chúng ta sẽ cùng xem qua các quy tắc cơ bản của các tài liệu XML và thảo luận về thuật ngữ được sử dụng để mô tả chúng.
Một điểm quan trọng về tài liệu XML: Đặc tả XML yêu cầu trình phân tích cú pháp từ chối mọi tài liệu XML không tuân theo các quy tắc cơ bản. Hầu hết các trình phân tích cú pháp HTML sẽ chấp nhận đánh dấu cẩu thả, đoán xem người viết tài liệu dự định là gì. Ví dụ bạn có thể viết một dòng text mà không có thẻ <p> hay bất cứ thẻ gì, thì nội dung vẫn được hiển thị. Hoặc bạn viết sai thẻ đâu đó, nó vẫn hiển thị chỉ là hiển thị không đẹp :) 
Để tránh sự lộn xộn có cấu trúc lỏng lẻo được tìm thấy trong tài liệu HTML trung bình, những người tạo XML đã quyết định phân tích cấu trúc tài liệu ngay từ đầu.
(Nhân tiện, nếu bạn không quen thuộc với thuật ngữ này, trình phân tích cú pháp là một đoạn mã cố gắng đọc tài liệu và diễn giải nội dung của nó.)

Tài liệu không hợp lệ, hợp lệ và được hình thành tốt Invalid, valid, và well-formed documents

Có ba loại tài liệu XML:
  • Các tài liệu không hợp lệ không tuân theo các quy tắc cú pháp được xác định bởi đặc tả XML. Nếu nhà phát triển đã xác định các quy tắc cho những gì tài liệu có thể chứa trong DTD hoặc lược đồ và tài liệu không tuân theo các quy tắc đó, thì tài liệu đó cũng không hợp lệ(Chúng ta sẽ có phần giới thiệu phù hợp về DTD và lược đồ cho tài liệu XML.)
  • Các tài liệu hợp lệ tuân theo cả quy tắc cú pháp XML và quy tắc được xác định trong DTD hoặc lược đồ của chúng.
  • Các tài liệu được tạo tốt tuân theo các quy tắc cú pháp XML nhưng không có DTD hoặc lược đồ.

Phần tử gốc - The root element

Một tài liệu XML phải được chứa trong một phần tử. Phần tử đơn đó được gọi là phần tử gốc và nó chứa tất cả văn bản và bất kỳ phần tử nào khác trong tài liệu. Trong ví dụ sau, tài liệu XML được chứa trong một phần tử duy nhất, <greeting> phần tử. Lưu ý rằng tài liệu có một nhận xét nằm ngoài phần tử gốc; đó là hoàn toàn hợp pháp.
1
2
3
4
5
<?xml version="1.0"?>
<!-- A well-formed document -->
<greeting>
  Hello, World!
</greeting>
Đây là một tài liệu không chứa một phần tử gốc:
1
2
3
4
5
6
7
8
<?xml version="1.0"?>
<!-- An invalid document -->
<greeting>
  Hello, World!
</greeting>
<greeting>
  Hola, el Mundo!
</greeting>
Cần phải có trình phân tích cú pháp XML để từ chối tài liệu này, bất kể thông tin có thể chứa thông tin gì.

Các yếu tố không thể chồng lấp

Các phần tử XML không thể chồng lấp. Đây là một số đánh dấu không hợp pháp:
1
2
3
4
5
6
<!-- NOT legal XML markup -->           
<p>
  <b>I <i>really
  love</b> XML.
  </i>
</p>
Nếu bạn bắt đầu một <i>phần tử bên trong một <b> phần tử, bạn cũng phải kết thúc nó ở đó. Nếu bạn muốn văn bản XMLxuất hiện in nghiêng, bạn cần thêm một <i>yếu tố thứ hai để sửa lỗi đánh dấu:
1
2
3
4
5
6
<!-- legal XML markup -->
<p>
  <b>I <i>really
  love</i></b>
  <i>XML.</i>
</p>
Trình phân tích cú pháp XML sẽ chỉ chấp nhận đánh dấu này; trình phân tích cú pháp HTML trong hầu hết các trình duyệt Web sẽ chấp nhận cả hai.

Cần có thẻ kết thúc

Bạn không thể bỏ qua bất kỳ thẻ kết thúc. Trong ví dụ đầu tiên bên dưới, đánh dấu là không hợp pháp vì không có </p>thẻ đoạn kết thúc ( ). Mặc dù điều này có thể chấp nhận được trong HTML (và, trong một số trường hợp, SGML), trình phân tích cú pháp XML sẽ từ chối nó.
1
2
3
4
<!-- NOT legal XML markup -->
<p>Yada yada yada...
<p>Yada yada yada...
<p>...
Nếu một phần tử không chứa đánh dấu nào cả thì nó được gọi là phần tử rỗng ; các phần tử HTML break ( <br>) và image ( <img>) là hai ví dụ. Trong các phần tử trống trong tài liệu XML, bạn có thể đặt dấu gạch chéo trong thẻ bắt đầu. Hai phần tử break và hai phần tử hình ảnh bên dưới có nghĩa giống nhau đối với trình phân tích cú pháp XML:
1
2
3
4
5
6
7
<!-- Two equivalent break elements -->
<br></br>
<br />
<!-- Two equivalent image elements -->
<img src="../img/c.gif"></img>
<img src="../img/c.gif" />

Các phần tử (element) là case sensitive

Các phần tử XML có phân biệt chữ hoa chữ thường. Trong HTML, <h1> và <H1>giống nhau; trong XML, thì không như vậy (tức là nó khác nhau ;)) . Nếu bạn cố gắng kết thúc một thẻ <h1> bằng thẻ </H1>, bạn sẽ gặp lỗi. Trong ví dụ dưới đây, tiêu đề ở trên cùng là bất hợp pháp, trong khi tiêu đề ở phía dưới là tốt.
1
2
3
4
5
6
7
<!-- NOT legal XML markup -->
<h1>Elements are
  case sensitive</H1>
<!-- legal XML markup -->
<h1>Elements are
  case sensitive</h1>

Các thuộc tính phải có giá trị trích dẫn

Có hai quy tắc cho các thuộc tính trong tài liệu XML:
  • Các thuộc tính phải có giá trị
  • Các giá trị này phải được đặt trong dấu ngoặc kép
So sánh hai ví dụ dưới đây. Đánh dấu ở trên cùng là hợp pháp trong HTML, nhưng không phải bằng XML. Để thực hiện tương đương trong XML, bạn phải cung cấp cho thuộc tính một giá trị và bạn phải đặt nó trong dấu ngoặc kép.
1
2
3
4
5
<!-- NOT legal XML markup -->
<ol compact>
<!-- legal XML markup -->
<ol compact="yes">
Bạn có thể sử dụng dấu ngoặc đơn hoặc dấu ngoặc kép, miễn là bạn nhất quán.
Nếu giá trị của thuộc tính chứa một trích dẫn đơn hoặc kép, bạn có thể sử dụng loại trích dẫn khác để bao quanh giá trị (như trong name="Doug's car") hoặc sử dụng các thực thể &quot;cho một trích dẫn kép và &apos;cho một trích dẫn. Một thực thể là một ký hiệu, chẳng hạn như &quot;, trình phân tích cú pháp XML thay thế bằng văn bản khác, chẳng hạn như ".

Khai báo XML

Hầu hết các tài liệu XML bắt đầu bằng một khai báo XML cung cấp thông tin cơ bản về tài liệu cho trình phân tích cú pháp. Một tuyên bố XML được khuyến nghị, nhưng không bắt buộc. Nếu có khai báo thì nó phải nó phải ở dòng đầu tiên trong tài liệu.
Khai báo có thể chứa tối đa ba cặp giá trị tên (nhiều người gọi chúng là thuộc tính, mặc dù về mặt kỹ thuật chúng không phải là). Đó là version-  phiên bản của XML được sử dụng; hiện tại giá trị này được điền là 1.0Bộ encoding ký tự được sử dụng trong tài liệu này. Bộ ký tự ISO-8859-1  được tham chiếu trong khai báo này bao gồm tất cả các ký tự được sử dụng bởi hầu hết các ngôn ngữ Tây Âu. Nếu encoding không được chỉ định, trình phân tích cú pháp XML giả định rằng các ký tự có trong tập hợp UTF-8, một tiêu chuẩn Unicode hỗ trợ hầu như mọi ký tự và chữ tượng hình từ các ngôn ngữ của thế giới.
1
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
Cuối cùng, standalone,có thể là yes hoặc no, xác định liệu tài liệu này có thể được xử lý mà không cần đọc bất kỳ tệp nào khác hay không. Ví dụ: nếu tài liệu XML không tham chiếu bất kỳ tệp nào khác, bạn sẽ chỉ định standalone="yes"Nếu tài liệu XML tham chiếu các tệp khác mô tả những gì tài liệu có thể chứa (thêm về các tệp đó trong một phút), bạn có thể chỉ định standalone="no"Bởi vì standalone="no" là mặc định, bạn hiếm khi thấy standalone trong các khai báo XML.

Post a Comment

Mới hơn Cũ hơn