Định dạng XML

Các bản kết xuất XML đã thu gọn từ dịch vụ SOAP, nguồn cấp RSS và bản xuất cấu hình rất khó đọc khi nằm trên một dòng duy nhất. Bộ định dạng này phân tích tài liệu, dựng lại với thụt lề nhất quán (2 hoặc 4 khoảng trắng, tab, hoặc không thụt lề cho đầu ra đã thu gọn), giữ nguyên thứ tự thuộc tính và các phần CDATA, đồng thời báo cáo mọi vấn đề về tính đúng định dạng kèm số dòng và cột chính xác, để bạn sửa các thẻ không khớp mà không phải dò tìm.

Cách định dạng XML

  1. 1

    Dán XML

    Độ dài bất kỳ, mã hóa bất kỳ; phần khai báo được giữ nguyên.

  2. 2

    Chọn cách thụt lề

    Khoảng trắng (2 hoặc 4), tab hoặc thu gọn.

  3. 3

    Định dạng

    Bộ phân tích cú pháp xây dựng một DOM, sau đó tuần tự hóa lại với khoảng cách nhất quán.

  4. 4

    Sao chép kết quả

    Kết quả là XML đúng định dạng, sẵn sàng để dán vào nhật ký hoặc tài liệu.

Việc định dạng giữ lại những gì

  • Khai báo XML (<?xml version="1.0" encoding="UTF-8"?>) được giữ nguyên văn.
  • Khai báo DOCTYPE và các tập con nội bộ được bảo toàn.
  • Chỉ thị xử lý (<?xml-stylesheet ?>) được giữ trên dòng riêng.
  • Chú thích nằm trên dòng riêng hoặc nội tuyến tùy theo ngữ cảnh.
  • Các phần CDATA được giữ nguyên chính xác, bao gồm cả khoảng trắng bên trong.
  • Giá trị thuộc tính được đặt lại trong dấu nháy kép nếu không chứa dấu nháy kép, nếu không thì dùng dấu nháy đơn.
  • Tham chiếu thực thể như &amp;, &lt;, &gt; được giữ nguyên trừ khi bạn bật mở rộng thực thể đầy đủ.

Ví dụ về thụt lề

Đầu vào (đã thu gọn):

<books><book id="1"><title>1984</title><author>George Orwell</author></book></books>

Đã định dạng (2 khoảng trắng):

<books>
  <book id="1">
    <title>1984</title>
    <author>George Orwell</author>
  </book>
</books>

Các lỗi phổ biến mà công cụ phát hiện được

Lỗi Cách khắc phục
Thẻ đóng không khớp Khớp tên thẻ mở và thẻ đóng
Phần tử chưa đóng Thêm thẻ đóng
Ký tự không hợp lệ trong tên thẻ Tên thẻ phải bắt đầu bằng chữ cái hoặc dấu gạch dưới
Thuộc tính trùng lặp trên cùng một phần tử Xóa phần trùng lặp
CDATA sai định dạng Kiểm tra cặp <![CDATA[ và ]]>
< hoặc & chưa được escape trong văn bản Dùng &lt; hoặc &amp;

Đúng định dạng (well-formed) so với hợp lệ (valid)

  • XML đúng định dạng (well-formed) tuân theo các quy tắc cú pháp: thẻ cân đối, ký tự hợp lệ, lồng nhau đúng cách. Công cụ định dạng kiểm tra điều này.
  • XML hợp lệ (valid) còn phải tuân theo một lược đồ (DTD hoặc XSD). Để kiểm tra điều đó, hãy dùng công cụ xác thực XSD.

Một tài liệu XML có thể đúng định dạng mà không hợp lệ, nhưng không thể ngược lại.

Ghi chú thực tế

  • Thứ tự thuộc tính XML có ý nghĩa với một số hệ thống (không nhiều hệ thống hiện đại), công cụ định dạng giữ nguyên thứ tự đầu vào.
  • Thẻ tự đóng so với thẻ rỗng tường minh: <foo/> và <foo></foo> là tương đương trong XML; công cụ định dạng dùng thẻ tự đóng cho phần tử rỗng trừ khi bạn chọn không dùng.
  • Tiền tố không gian tên được giữ nguyên chính xác.

Câu hỏi thường gặp

Có. Văn bản bên trong các phần tử nội dung hỗn hợp và các phần CDATA được giữ nguyên; chỉ khoảng trắng giữa các phần tử mới được điều chỉnh để thụt lề.

Giới hạn thực tế trong trình duyệt khoảng 50 MB; vượt quá mức này, việc phân tích DOM sẽ tiêu tốn quá nhiều bộ nhớ. Đối với các tệp lớn, hãy sử dụng công cụ định dạng dữ liệu luồng như xmllint trên dòng lệnh.

Đúng vậy. Các tuyên bố không gian tên được giữ nguyên trên các phần tử tương ứng; trình định dạng sẽ không sắp xếp lại chúng về vị trí gốc trừ khi bạn bật tùy chọn “consolidate namespaces”.

Không. Việc phân tích và định dạng được thực hiện trực tiếp trong trình duyệt của bạn; không có dữ liệu nào được truyền đi.

Công cụ liên quan

Công cụ này có phiên bản bằng các ngôn ngữ khác