Chuyển JSON sang XML JavaScript Object Notation ↔ Extensible Markup Language Miễn phí Trực tuyến An toàn
Thả vào một tệp JSON rồi mang XML đi. Việc đọc và ghi diễn ra ngay đây, trong trình duyệt của bạn, nên tệp không rời khỏi thiết bị — còn chuyến đi ấy giữ được gì và không giữ được gì thì viết rõ bên dưới, chứ không để bạn tự phát hiện.
Chuyển đổi tệp của bạn
Thả một tệp JSON vào đây, hoặc chọn một tệp.
Tệp của bạn không rời khỏi thiết bị này. Mọi thứ chạy trong trình duyệt của bạn.
Không tải gì lên
Chuyển từ JSON
Chuyển sang JSON
Những định dạng này đến từ đâu
CSV là định dạng cổ nhất và ít chuẩn hóa nhất: một bảng viết thành những dòng văn bản, dùng từ thập niên 1970 mà mãi năm 2005 mới được mô tả thành văn, khi mọi chương trình đã tự quyết lấy đâu là dấu phân cách và khi nào đặt dấu nháy. XML lớn lên từ SGML năm 1998, dành cho những tài liệu phải mang cấu trúc chặt và được kiểm theo một lược đồ. JSON được Douglas Crockford rút ra từ JavaScript quanh năm 2001, cố ý tỉa gọn chỉ còn đối tượng, mảng, số và chuỗi — chính sự tối giản ấy khiến nó chiếm lĩnh web. YAML là người anh em dễ đọc của nó, nơi việc thụt đầu dòng làm thay phần việc của các dấu ngoặc. Khi đổi qua lại giữa chúng, chỉ một điều là đáng kể: CSV phẳng, một lưới gồm hàng và cột, còn JSON, XML và YAML là những cái cây.
Bạn gặp chúng ở đâu
CSV là thứ bảng tính xuất ra, và là thứ kế toán, sàn bán hàng hay sao kê ngân hàng đưa cho bạn. JSON là thứ các dịch vụ web nói với nhau, và ngày càng là thứ dùng để viết tệp cấu hình. XML sống sót trong các hệ thống doanh nghiệp cũ, trong các chuẩn hóa đơn, và ngay bên trong chính các định dạng văn phòng. YAML là nơi con người viết thiết lập bằng tay. Đổi qua lại giữa chúng là công việc hằng ngày, đưa dữ liệu từ nơi nó sinh ra đến nơi người ta cần nó.
Những câu hỏi thường gặp
Tệp CSV của tôi mở trong Excel thành một cột duy nhất. Vì sao?
Vì bảng tính của bạn trông đợi một dấu phân cách khác. Excel đi theo dấu phân cách danh sách trong thiết lập vùng của máy, mà đó là dấu chấm phẩy ở bất cứ nơi nào dấu phẩy đã dùng làm dấu thập phân — tức phần lớn châu Âu lục địa. Khi ấy một tệp ngăn bằng dấu phẩy trông như một cột chữ. Hãy dùng hộp thoại nhập và nói rõ dấu phân cách, thay vì nhấp đúp vào tệp. Cũng chính thiết lập vùng ấy khiến 3.5 đôi khi biến thành một ngày tháng.
Vì sao JSON lồng nhau của tôi không thành một bảng tính gọn gàng được?
Vì bảng tính thì phẳng còn JSON là một cái cây. Một hàng chứa được một giá trị cho mỗi cột; một đối tượng JSON có thể chứa một danh sách nằm trong một trường nằm trong một danh sách khác. Đổi nghĩa là phải chọn cách làm phẳng chỗ ấy: hoặc nối các tên lồng nhau thành một tiêu đề cột dài, hoặc lặp lại hàng cha một lần cho mỗi con. Cả hai đều là nhượng bộ, và không cách nào tự hoàn nguyên được — vì thế đi ngược từ bảng tính về hình dạng ban đầu thường cần đến một quyết định của con người.
Tệp có mất chất lượng không?
Còn tùy hai định dạng chứa được những gì. Đổi giữa những định dạng lưu cùng một thứ — PNG sang BMP, WAV sang FLAC — thì chẳng mất gì. Đổi sang định dạng vứt bớt thông tin để tiết kiệm chỗ, như JPEG hay MP3, thì mỗi lần mất đi một ít, và đổi ngược lại cũng không lấy về được. Ở chỗ có thể chọn, trang này nghiêng về giữ chất lượng gốc hơn là tạo ra tệp nhỏ nhất.
Tệp của tôi có được tải lên đâu không?
Không. Việc chuyển đổi diễn ra bên trong trình duyệt của bạn, trên chính máy của bạn; tệp không bao giờ rời khỏi đó, và ở đây cũng chẳng có máy chủ nào để nhận nó. Vì vậy một tệp lớn bị giới hạn bởi bộ nhớ của chính bạn chứ không phải bởi việc tải lên; và vì vậy không thứ gì bạn chuyển đổi có thể xuất hiện trong nhật ký của bất kỳ ai — kể cả của chúng tôi. Các công cụ âm thanh và video thì có tải bộ máy chuyển đổi của chúng từ trang này lần đầu bạn dùng — chừng ba mươi megabyte, chỉ một lần; sau đó công việc vẫn diễn ra hoàn toàn trên máy của bạn.
Vì sao người ta chuyển JSON sang XML
JSON là ngôn ngữ của mã web hiện đại: nhẹ, dễ đọc và được mọi ngôn ngữ lập trình hiểu. XML là người anh em cũ hơn và trang trọng hơn, viết bằng các thẻ mở và đóng, và vẫn là định dạng bắt buộc ở rất nhiều nơi. Phần mềm kế toán, hệ thống thuế và hải quan, nền tảng mua sắm công, nguồn cấp sản phẩm, quy trình xuất bản, phần mềm doanh nghiệp và một danh sách dài các dịch vụ web cũ đều mong đợi XML. Khi dữ liệu của bạn ở dạng JSON mà hệ thống phải nhận nó nói XML, cần có một phép chuyển đổi. Đó là lý do người ta chuyển JSON sang XML: họ có thông tin ở một dạng, và đích đến đòi hỏi dạng kia.
Những tình huống này phổ biến. Một lập trình viên phải gửi dữ liệu từ một ứng dụng hiện đại đến một dịch vụ xây từ nhiều năm trước. Một cửa hàng xuất sản phẩm dưới dạng JSON và phải đưa một nguồn cấp cho một sàn muốn XML. Một nhóm cần cấu hình ở dạng đánh dấu mà một công cụ ưa thích. Một sinh viên muốn xem cùng dữ liệu trông thế nào ở cả hai cách ký hiệu. Trong mọi trường hợp, nội dung đã sẵn sàng, và chỉ có cách ký hiệu khác nhau.
Trang này chuyển JSON sang XML ngay trong trình duyệt của bạn. Tệp của bạn được đọc và ghi tại đây, nên nó không bao giờ rời khỏi thiết bị, điều quan trọng với đơn hàng, hóa đơn và mọi thứ riêng tư khác. Và trang nói trước cho bạn biết việc chuyển đổi giữ lại gì và không giữ được gì, thay vì để bạn tự phát hiện. Bên dưới bạn sẽ thấy việc chuyển đổi hoạt động ra sao, tên, danh sách và thuộc tính được xử lý thế nào và phải làm gì với những khóa mà XML không chấp nhận.
Việc chuyển đổi hoạt động thế nào
Toàn bộ cây được chuyển sang
Tệp JSON của bạn được đọc bên trong trình duyệt, và toàn bộ cây được ghi ra dưới dạng XML. Các đối tượng thành phần tử, khóa của chúng thành tên các phần tử con, và giá trị thành văn bản bên trong. Sự lồng nhau trong JSON là sự lồng nhau trong XML, nên hình dạng bạn thấy trong ngoặc nhọn là hình dạng bạn nhận được trong thẻ.
Tài liệu được đặt tên theo khóa duy nhất
Một tài liệu XML cần đúng một phần tử gốc. Nếu đối tượng JSON của bạn có một khóa duy nhất, khóa đó đặt tên cho tài liệu. Đây là trường hợp thuận tiện: một tệp XML chuyển sang JSON rồi quay lại trông như chính nó, vì phần tử gốc thành khóa duy nhất và trở lại làm phần tử gốc. Nếu JSON của bạn có nhiều khóa ở trên cùng, bộ chuyển đổi bọc chúng trong một phần tử gốc để kết quả đúng chuẩn.
Danh sách lặp lại phần tử
Một mảng lặp lại phần tử của nó. Một khóa products chứa danh sách ba bản ghi cho ra ba phần tử product nối tiếp nhau, đó là cách XML biểu diễn một danh sách. Thứ tự được giữ nguyên.
Những gì được giữ lại
Toàn bộ cây
Mọi đối tượng, mọi danh sách và mọi giá trị đều được chuyển sang. Không có gì bị bỏ, và sự lồng nhau là sự lồng nhau của bản gốc.
Thuộc tính, qua ký hiệu @
Một khóa bắt đầu bằng @ thành một thuộc tính. Một bản ghi có khóa @id và khóa name cho ra một phần tử có thuộc tính id và một phần tử con name. Đây cũng là quy ước mà phép chuyển đổi ngược dùng, nên XML chuyển sang JSON rồi quay lại giữ được các thuộc tính.
Thứ tự
Các khóa giữ thứ tự chúng xuất hiện trong JSON, nên các phần tử trong XML theo trình tự của nguồn.
Điều bạn nên biết trước khi chuyển JSON sang XML
Khóa JSON nào cũng có thể là một từ; tên XML thì không
Khóa JSON nào cũng có thể là một từ, một số hay một cụm có dấu cách. Tên phần tử XML thì không: nó phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới và có thể chứa chữ cái, chữ số, dấu gạch ngang, gạch dưới và dấu chấm, nhưng không có dấu cách. Một khóa không phải là tên hợp lệ không bị bóp méo thành một tên. Nó trở thành một phần tử item có thuộc tính name, viết như item name="khóa gốc", nên bản gốc vẫn ở trong tệp và vẫn tìm được. Không có gì bị đổi tên trong im lặng.
Không có không gian tên, không có lược đồ
Không có gì được đặt không gian tên, và không có gì được gắn lược đồ. Kết quả đúng chuẩn, chưa được kiểm định. Mọi trình đọc XML đều đọc được, nhưng việc nó có thỏa mãn cấu trúc cụ thể mà hệ thống thuế hay sàn thương mại yêu cầu hay không là một câu hỏi khác, và chỉ bên nhận mới trả lời được. Nếu một lược đồ đòi hỏi các tên phần tử nhất định, bạn sẽ cần làm cho các khóa JSON khớp với chúng từ trước.
Giá trị là văn bản
XML không có kiểu dữ liệu: mọi giá trị trong thẻ đều là văn bản. Số, true, false và null được ghi dưới dạng văn bản của chúng. Chương trình đọc XML phải diễn giải chúng theo cách nó thấy phù hợp.
Cách chuyển JSON sang XML tại đây
Thêm tệp của bạn
Thả tệp JSON lên trang hoặc chọn từ thiết bị. Nó được đọc bên trong trình duyệt và không được tải lên.
Chuyển đổi
Nhấn nút. Một tệp cỡ thông thường mất một lát. Hãy để trang mở cho đến khi xong.
Tải xuống và kiểm tra
Tải XML xuống và mở nó trong trình soạn thảo văn bản hoặc trình duyệt. Hãy nhìn phần đầu và phần cuối, và kiểm tra tên phần tử có như bạn mong đợi và các thuộc tính xuất hiện đúng chỗ bạn định.
Nhìn kỹ hơn vào JSON và XML
Hai cách viết một cây
Cả JSON và XML đều mô tả một cây các giá trị. JSON viết nó bằng ngoặc nhọn và ngoặc vuông, và chỉ biết đối tượng, danh sách, chuỗi, số, giá trị đúng sai và null. XML viết nó bằng các thẻ mở và đóng, và thêm thuộc tính, không gian tên và nội dung hỗn hợp. Chúng chồng khớp tốt với dữ liệu, như bản ghi và cài đặt, và chồng khớp kém với tài liệu, nơi văn bản và đánh dấu đan xen.
Vì sao các quy ước quan trọng
JSON không có thuộc tính, không có phần tử gốc và không có khái niệm lặp một phần tử. Vì vậy mọi phép chuyển đổi cần có quy ước: ký hiệu @ cho thuộc tính, khóa duy nhất cho phần tử gốc, việc lặp phần tử cho danh sách. Các quy ước dùng ở đây đơn giản và nhất quán, và khớp với những quy ước dùng khi đi từ XML sang JSON, điều cho phép một vòng đi về hoạt động trong các trường hợp thường gặp.
Giá trị rỗng
Một chuỗi rỗng và một null đều kết thúc thành một phần tử rỗng. Nếu sự khác biệt quan trọng với hệ thống nhận, hãy đánh dấu nó trong dữ liệu trước khi chuyển JSON sang XML, chẳng hạn bằng một cờ riêng.
Các tình huống thường gặp chi tiết
Nguồn cấp cho sàn thương mại và trang so sánh
Nhiều nền tảng yêu cầu nguồn cấp sản phẩm ở dạng XML. Nếu phần mềm cửa hàng của bạn xuất JSON, hãy chuyển JSON sang XML, kiểm tra tên phần tử với đặc tả của nền tảng và tải lên.
Dịch vụ cũ và hệ thống doanh nghiệp
Các hệ thống xây trong thời đại SOAP và các API đầu tiên mong đợi XML. Một ứng dụng hiện đại có thể tạo JSON và để nó được chuyển đổi cho họ.
Cấu hình cho các công cụ ưa XML
Một số công cụ xây dựng, hệ thống nội dung và chương trình máy tính đọc cài đặt của chúng từ XML. Một cấu hình viết dưới dạng JSON có thể được chuyển sang dạng chúng cần.
Học và so sánh
Thấy cùng dữ liệu ở cả hai cách ký hiệu là cách tốt để hiểu chúng khác nhau thế nào. Hãy dán một JSON nhỏ, chuyển đổi và so sánh hai bên cạnh nhau.
Lời khuyên thực tế trước khi chuyển JSON sang XML
Kiểm tra JSON hợp lệ
Một dấu phẩy thừa hay một dấu nháy thiếu sẽ dừng việc chuyển đổi. Nếu trang báo lỗi, hãy mở tệp trong trình soạn thảo làm nổi bật lỗi JSON và sửa dòng mà nó chỉ ra.
Làm cho khóa thành tên phần tử hợp lệ
Nếu bạn biết XML sẽ được kiểm tra theo một lược đồ, hãy dùng các khóa là tên hợp lệ và khớp với lược đồ. Nếu không, bộ chuyển đổi sẽ giữ chúng an toàn dưới dạng phần tử item, điều đúng nhưng có thể không như bên nhận mong đợi.
Chọn một khóa cấp cao nhất duy nhất
Nếu bạn muốn phần tử gốc của XML có một tên cụ thể, hãy bọc dữ liệu trong một đối tượng với khóa duy nhất đó trước khi chuyển JSON sang XML.
Tệp lớn
Mọi thứ chạy trên thiết bị của bạn, nên một tệp rất lớn cần bộ nhớ. Với tệp nhiều megabyte, hãy dùng máy tính, và chia dữ liệu nếu trang gặp khó.
Những câu hỏi người ta hỏi trước khi chuyển đổi
Cái gì đặt tên cho phần tử gốc?
Một đối tượng có một khóa duy nhất đặt tên cho tài liệu theo khóa đó.
Làm sao để có một thuộc tính?
Hãy bắt đầu khóa bằng @. Nó trở thành một thuộc tính của phần tử.
Điều gì xảy ra với khóa có dấu cách?
Nó không phải tên phần tử hợp lệ, nên trở thành một phần tử item có thuộc tính name chứa khóa gốc. Không có gì mất.
XML có qua được kiểm tra lược đồ không?
Kết quả đúng chuẩn, chưa được kiểm định. Nó có đáp ứng một lược đồ cho trước hay không tùy vào tên phần tử và cấu trúc của bạn.
Tệp của tôi có được tải lên không?
Không. Việc chuyển đổi chạy trong trình duyệt của bạn và tệp không bao giờ rời khỏi thiết bị.
Tôi có thể quay lại JSON không?
Có. XML sang JSON đọc lại một cây XML, với cùng quy ước cho thuộc tính.
Chọn khôn ngoan khi chuyển JSON sang XML
Có thật sự cần XML không?
Nếu hệ thống nhận chấp nhận JSON, hãy dùng JSON. Chỉ chuyển đổi khi XML là bắt buộc.
Các đích khác
Cho cấu hình mà người ta chỉnh sửa, JSON sang YAML dễ đọc hơn. Cho bảng, JSON sang CSV và JSON sang XLSX phục vụ bảng tính.
Giữ lại JSON
JSON là bản gốc. Nó giữ các kiểu. Hãy giữ nó, và coi XML như một bản sao làm cho một bên nhận cụ thể.
Có kết quả tốt sau khi chuyển đổi
Mở nó trong trình duyệt
Trình duyệt hiển thị XML như một cây có thể thu gọn. Hãy mở tệp và mở rộng các phần tử. Nếu cấu trúc trông như bạn mong đợi, nó vững chắc.
So sánh vài bản ghi với nguồn
Lấy vài bản ghi ở giữa và đối chiếu với JSON. Mất một phút và cho bạn biết việc chuyển đổi trung thực.
Thêm những gì bên nhận cần
Nếu bên nhận yêu cầu một dòng khai báo, một không gian tên hay một tham chiếu bảng định kiểu, hãy thêm chúng trong trình soạn thảo văn bản. Chúng không phải một phần của dữ liệu và không được viết giúp bạn.
Chuẩn bị JSON để nó chuyển đổi tốt
Dùng cấu trúc đều đặn
Khi bạn chuyển JSON sang XML, dữ liệu đều đặn chuyển tốt nhất: danh sách bản ghi dùng chung các khóa, mỗi khóa là một tên hợp lệ. Dữ liệu không đều cho ra kết quả đúng nhưng lộn xộn.
Quyết định cái gì là thuộc tính
Định danh, mã và cờ thường là thuộc tính trong XML. Hãy đánh dấu chúng trong JSON bằng @, và kết quả sẽ trông như XML mà một người sẽ viết.
Thử trên một phần nhỏ trước
Nếu tệp lớn, hãy lấy các bản ghi đầu vào một tệp thử và chuyển nó. Nhìn nhanh kết quả cho thấy hình dạng có như bạn mong đợi không.
Làm cho XML vừa với bên nhận
Xem đặc tả trước
Trước khi chuyển JSON sang XML cho một sàn thương mại, một cổng thuế hay một đối tác, hãy đọc điều họ yêu cầu. Hầu hết đều công bố mô tả các phần tử họ mong đợi, thứ tự và phần tử nào bắt buộc. Căn tên khóa của bạn theo đó tốn vài phút trong JSON và tiết kiệm một lần tải lên thất bại về sau.
Thứ tự có thể quan trọng
Một số lược đồ XML đòi hỏi các phần tử theo thứ tự cố định. Bộ chuyển đổi giữ thứ tự các khóa của bạn, nên nếu bên nhận khăng khăng một trình tự, hãy viết các khóa JSON theo trình tự đó. Kết quả theo đúng điều bạn đã viết.
Thêm dòng khai báo nếu bắt buộc
Một dòng ở đầu nêu phiên bản và bảng mã là thông lệ và một số bên nhận khăng khăng đòi nó. Nó không phải một phần của dữ liệu, nên không được viết giúp bạn. Hãy thêm bằng tay trong trình soạn thảo văn bản, trước phần tử đầu tiên.
Chú ý ký tự đặc biệt
Dấu và, ngoặc nhọn góc và dấu nháy kép trong giá trị được ghi ở dạng thoát của chúng, nên XML vẫn hợp lệ dù văn bản chứa gì. Bạn không cần chuẩn bị chúng trong JSON.
Giữ một mẫu đã được chấp nhận
Khi bên nhận chấp nhận một tệp, hãy giữ một bản sao đúng tệp đó và JSON đã tạo ra nó. Khi một lần tải lên sau thất bại, so với bản đã chạy được sẽ tìm ra khác biệt ngay.
Lặp lại việc chuyển đổi thay vì sửa tay
Khi dữ liệu thay đổi, hãy đổi JSON và chuyển JSON sang XML lại. Sửa XML bằng tay để lại hai phiên bản lệch dần nhau.
Quyền riêng tư và cách xử lý
Vì sao chuyển đổi cục bộ quan trọng với dữ liệu
Tệp dữ liệu thường chứa thứ riêng tư: khách hàng, đơn hàng, hóa đơn, cài đặt. Nhiều bộ chuyển đổi trực tuyến tải tệp của bạn lên máy chủ, xử lý và gửi kết quả về, và trong một thời gian một bản sao nằm trên một máy bạn không kiểm soát. Ở đây trình duyệt của chính bạn làm việc, nên dữ liệu ở lại trên thiết bị.
Điều gì xảy ra khi bạn rời đi
Khi bạn đóng trang, tệp đã chuyển biến mất khỏi trình duyệt, nên hãy tải nó xuống trước. Không có gì về dữ liệu của bạn được giữ lại.
Nếu có gì trục trặc
Trang báo tệp không phải JSON hợp lệ
Có thể có một dấu phẩy thừa, một dấu nháy thiếu hay một ngoặc không đóng. Hãy mở tệp trong trình soạn thảo làm nổi bật lỗi JSON và sửa dòng mà nó chỉ ra.
Bên nhận từ chối XML
Kết quả đúng chuẩn nhưng chưa được kiểm định. Hãy so nó với đặc tả của bên nhận và điều chỉnh tên khóa và cấu trúc của JSON.
Trang bị đơ với tệp lớn
Mọi thứ chạy trên thiết bị của bạn, và một tệp lớn cần bộ nhớ. Hãy thử lại trên máy tính, hoặc chia dữ liệu.
Các công cụ liên quan
Cùng họ công cụ này bao quát các việc lân cận. Để quay lại, hãy dùng XML sang JSON. Cho tệp cấu hình, JSON sang YAML và YAML sang JSON chuyển đổi giữa hai dạng đó. Cho bảng, có JSON sang CSV, CSV sang JSON, JSON sang XLSX và XLSX sang JSON.
Một ví dụ thực tế
Giả sử phần mềm cửa hàng của bạn xuất 300 sản phẩm dưới dạng JSON, và một sàn thương mại yêu cầu nguồn cấp XML với phần tử gốc tên là catalogue. Bạn bọc danh sách trong một đối tượng với khóa duy nhất catalogue, thả tệp vào đây và nhấn nút. Một lát sau bạn tải về một XML có gốc là catalogue và chứa 300 phần tử product, mỗi phần tử có id của nó làm thuộc tính vì bạn đã viết khóa là @id. Bạn tải nguồn cấp lên, và sàn chấp nhận. JSON ở lại trong thư mục của bạn như nguồn.
Một danh sách kiểm tra ngắn
Trước khi chuyển đổi
Kiểm tra JSON hợp lệ. Chọn tên gốc. Đánh dấu thuộc tính bằng @. Giữ lại JSON.
Trong khi chuyển đổi
Ở lại trang cho đến khi tệp sẵn sàng.
Sau khi chuyển đổi
Mở XML, kiểm tra tên phần tử, thuộc tính và danh sách, và thử nó với bên nhận.
Những lỗi thường gặp
Cho rằng kết quả đã được kiểm định
XML đúng chuẩn, chưa được kiểm tra theo bất kỳ lược đồ nào. Hãy kiểm định nó theo quy tắc của bên nhận.
Dùng khóa có dấu cách hoặc ký hiệu
Chúng thành phần tử item có thuộc tính name. Hãy dùng tên hợp lệ nếu bên nhận mong đợi.
Xóa JSON
Hãy giữ nó. Nó giữ các kiểu mà XML không thể.
Dữ liệu của bạn ở lại trên thiết bị
Việc chuyển đổi diễn ra cục bộ. Tệp của bạn được trình duyệt của chính bạn đọc, viết lại ở đó và trao lại dưới dạng XML. Không có gì được tải lên, nên không có bản sao nào nằm trên máy chủ và không ai khác đọc được. Với dữ liệu có nội dung riêng tư, đó là cách an toàn để chuyển JSON sang XML.
Tóm tắt
Để chuyển JSON sang XML tại đây, hãy thả tệp và nhấn nút. Nó được đọc và ghi trong trình duyệt của bạn, nên tệp không bao giờ rời khỏi thiết bị. Toàn bộ cây được giữ. Một đối tượng có một khóa duy nhất đặt tên tài liệu theo khóa đó, nên một tệp XML chuyển sang JSON rồi quay lại trông như chính nó; một mảng lặp lại phần tử của nó; một khóa bắt đầu bằng @ thành một thuộc tính. Khóa JSON nào cũng có thể là một từ; tên phần tử XML thì không. Một khóa không phải là tên hợp lệ không bị bóp méo thành một tên: nó trở thành một phần tử item có thuộc tính name, nên bản gốc vẫn ở trong tệp và vẫn tìm được. Không có gì được đặt không gian tên, và không có gì được gắn lược đồ: kết quả đúng chuẩn, chưa được kiểm định.