Về công cụ này
Định dạng XML thụt lề các phần tử lồng nhau để hệ thống phân cấp tài liệu trở nên hiển thị. XML nhỏ gọn — mọi thứ trên một dòng — có giá trị về mặt kỹ thuật và hữu ích cho việc truyền tải nhưng con người không thể đọc được. XML được định dạng thêm dấu ngắt dòng giữa các phần tử và thụt lề phần tử con bên trong phần tử cha của chúng, làm cho phần tử này có thể quét được, phân biệt và chỉnh sửa được bằng tay.
Trình định dạng này phân tích cú pháp đầu vào bằng cách sử dụng DOMParser để xác nhận tính đúng đắn, sau đó chuyển DOM kết quả để phát ra đầu ra thụt lề. Các nhận xét, hướng dẫn xử lý và phần CDATA được giữ nguyên. Thẻ tự đóng (không có thẻ con) được giữ gọn trên một dòng duy nhất; các thẻ có con được trải rộng trên nhiều dòng với các con được thụt vào.
Thụt lề hai dấu cách là mặc định, phù hợp với quy ước XML phổ biến nhất. Trình định dạng thận trọng trong việc định dạng lại: cấu trúc hiện có được giữ nguyên, chỉ có khoảng trắng giữa các phần tử thay đổi. Dữ liệu sẽ đi vòng quanh bất kỳ trình phân tích cú pháp XML nào trước và sau khi định dạng.
Tại sao định dạng XML
XML nhỏ gọn không thể đọc được. Phản hồi SOAP, nguồn cấp RSS và nhiều tệp cấu hình xuất hiện dưới dạng XML một dòng có giá trị về mặt kỹ thuật nhưng thực tế không rõ ràng. Việc định dạng sẽ tiết lộ cấu trúc tài liệu, cho phép bạn định vị các thành phần cụ thể và làm cho những khác biệt trong kiểm soát phiên bản trở nên có ý nghĩa.
Định dạng cũng đóng vai trò kiểm tra tính hợp lệ. Nếu XML không phân tích được trong quá trình định dạng thì thông báo lỗi sẽ xác định vấn đề — thường là các thẻ không được đóng, tên phần tử không khớp hoặc ký tự không hợp lệ. Việc phát hiện lỗi XML trước khi gửi đến người tiêu dùng nghiêm ngặt sẽ tiết kiệm thời gian gỡ lỗi.
Chi tiết kỹ thuật
DOMParser tạo ra một XML DOM. Bộ định dạng đi theo chiều sâu của cây trước tiên, phát ra các thẻ mở, thẻ con thụt lề và thẻ đóng. Thuộc tính phần tử được giữ nguyên trên thẻ mở; thứ tự thuộc tính khớp với nguồn.
Khoảng trắng đáng kể bên trong các nút văn bản được giữ nguyên — trình định dạng không thể thay đổi khoảng trắng nội dung một cách an toàn vì nó có thể có ý nghĩa (các quy tắc bảo toàn khoảng trắng XML khác nhau giữa các lược đồ). Chỉ có khoảng trắng giữa các phần tử thay đổi.
Các phần tử tự đóng (không có phần tử con) phát ra dưới dạng <tag attr="val"/>. Các phần tử chỉ có nội dung văn bản sẽ phát ra dưới dạng <tag>văn bản</tag>. Các phần tử có phần tử con phát ra trên nhiều dòng có phần tử con thụt vào. Các phần, nhận xét và hướng dẫn xử lý CDATA phát ra cùng với các dấu phân cách và nội dung ban đầu của chúng.
Câu hỏi thường gặp
- Điều này phát hiện ra lỗi XML nào?
- Công cụ này phát hiện các thẻ không được đóng, thẻ mở/đóng không khớp, tham chiếu ký tự không hợp lệ, phần tử gốc bị thiếu, thuộc tính không đúng định dạng và các vấn đề về mã hóa. Thông báo lỗi bao gồm số dòng để giúp bạn xác định vấn đề.
- Định dạng có làm thay đổi nội dung XML không?
- Định dạng chỉ điều chỉnh khoảng trắng và thụt lề giữa các phần tử. Nội dung phần tử, thuộc tính, phần CDATA và hướng dẫn xử lý được giữ nguyên chính xác như đã nhập.
- Nó có thể xử lý các tệp XML lớn không?
- Công cụ này xử lý các tệp có dung lượng lên tới vài megabyte trong trình duyệt. Đối với các tài liệu XML rất lớn (50MB+), hãy cân nhắc sử dụng các công cụ dòng lệnh như xmllint để có hiệu suất tốt hơn.
- Nó có hỗ trợ các không gian tên XML không?
- Đúng. Trình định dạng xử lý chính xác các khai báo vùng tên (xmlns), các phần tử có tiền tố và vùng tên mặc định. Không gian tên được giữ nguyên trong đầu ra được định dạng.
- Không gian tên có được bảo tồn không?
- Đúng. Các thuộc tính xmlns và xmlns:prefix được giữ nguyên trên các phần tử nơi chúng xuất hiện trong nguồn.
- Tôi có thể thu nhỏ XML thành một dòng không?
- Một số trình định dạng XML cung cấp khả năng thu nhỏ. Công cụ này tập trung vào việc định dạng; XML rút gọn có thể được tạo ra bằng cách loại bỏ khoảng trắng giữa các phần tử bằng biểu thức chính quy hoặc công cụ chuyên dụng.
- XML của tôi có được tải lên máy chủ không?
- Không. DOMParser chạy trong trình duyệt của bạn; trình định dạng chạy trong trình duyệt của bạn.
- Khoảng trắng bên trong các nút văn bản có thay đổi không?
- Không. Khoảng trắng của nút văn bản được giữ nguyên vì các quy tắc giữ khoảng cách XML khác nhau tùy theo lược đồ. Bộ định dạng chỉ thay đổi khoảng trắng giữa các phần tử.