Từ những gì tôi hiểu, xác định không gian tên tùy chỉnh là hoàn toàn hợp lệ XHTML
Nope. Các không gian tên tùy chỉnh hoàn toàn là cũng được định dạng trong XML, nhưng ‘hợp lệ’ có ý nghĩa cụ thể là mọi phần tử và thuộc tính được sử dụng được khai báo trong lược đồ của tài liệu. Lược đồ đó có thể là một DTD, một lược đồ XML, hoặc một cái gì đó khác, nhưng bạn phải khai báo nó.
Vì vậy, bạn có thể khai báo lược đồ của riêng bạn để thêm thuộc tính tùy chỉnh vào ngôn ngữ và thực sự XHTML Modularization làm cho việc này trở nên rất dễ dàng. Bạn sẽ phải thêm tham chiếu đến DTD dưới dạng <! DOCTYPE> trong phần mở đầu; chỉ cần thiết lập các URI không gian tên không cung cấp cho một bộ xử lý XML bất kỳ móc nào để tìm ra lược đồ đó.
Nhưng sau đó những gì bạn đã viết là "hợp lệ ngôn ngữ của tôi-mà-là-một-bit-like-XHTML" và không phải là "XHTML hợp lệ". Một số "ngôn ngữ của tôi" nổi tiếng, như ‘XHTML + MathML + SVG’, nhưng nó vẫn không phải XHTML như vậy và nếu khách hàng của bạn chết trên “XHTML hợp lệ” thì bạn không thể sử dụng bất kỳ thứ gì trong số họ.
Bạn cũng gặp phải sự cố về trình duyệt tiềm năng, đặc biệt với IE, IE8 (trước IE8) thực hiện một số điều kỳ lạ với họ gọi là phần tử. * EtAttribute *. Và trừ khi bạn đang thực sự phục vụ tài liệu dưới dạng XML Content-Type (mà IE cũng không thể xử lý), tất cả các công cụ không gian tên của bạn không thực sự sử dụng các không gian tên.
Trong HTML5, có một đề xuất cho phép các thuộc tính tùy chỉnh của người dùng (chủ yếu cho mục đích kịch bản) để đi vào các thuộc tính có tên bắt đầu bằng ‘data-’. Nhưng trong khi chờ đợi, phương pháp thông thường là ẩn các giá trị trong một thuộc tính khác, ví dụ: class:
<div class="userid-123">...</div>
và sau đó trích xuất dữ liệu bằng cách xử lý chuỗi phù hợp trên className in script.
Tôi không hiểu tại sao trình xác thực sẽ kiểm tra DTD cho vùng tên. Dù sao, trình duyệt cũng không kiểm tra DTD, và tôi có xu hướng tin rằng bạn không thực sự sử dụng XHTML thích hợp, tức là bạn đã gửi Content-type: tiêu đề văn bản/html cho trang web đó. Nhưng tôi có thể sai. –