Schema & Structured Data

Enumeration Schema

Schema đại diện cho tập hợp các giá trị cố định (ví dụ: DayOfWeek, MusicAlbumProductionType).

4 lượt xem Cập nhật: 01/06/2026

Enumeration Schema là gì?

Enumeration Schema (lược đồ liệt kê) là một loại schema.org dùng để mô tả tập hợp các giá trị cố định, có giới hạn và được định nghĩa rõ ràng — ví dụ như DayOfWeek, MusicAlbumProductionType, RatingValue hay BookFormatType. Đây không phải là dữ liệu tùy ý mà là danh sách đóng, trong đó mỗi mục đều là một hằng số đã được schema.org công nhận và kiểm soát.

Khác với các kiểu schema như Person hay Article — nơi thuộc tính có thể thay đổi theo nội dung — Enumeration chỉ cho phép chọn từ danh sách đã khai báo sẵn. Việc sử dụng đúng enumeration giúp máy tìm hiểu chính xác ngữ nghĩa của dữ liệu, đặc biệt khi mô tả trạng thái, loại hình, mức độ hoặc phân loại.

Tại sao quan trọng trong SEO?

Enumeration Schema nâng cao khả năng hiểu ngữ nghĩa của trang web bởi công cụ tìm kiếm. Khi bạn đánh dấu "reviewRating": {"@type": "Rating", "ratingValue": "4.5", "bestRating": "5"}, việc thêm "ratingValue": {"@type": "RatingValue", "value": "4.5"} — nếu có — sẽ không hợp lệ vì RatingValue không phải enumeration; nhưng khi dùng "dayOfWeek": ["Monday", "Friday"] với @type: "DayOfWeek", bạn đang tuân thủ chuẩn chính xác.

Các lợi ích thực tế bao gồm:

  • Tăng khả năng xuất hiện trong rich result (kết quả mở rộng) như lịch trình sự kiện, đánh giá sản phẩm hoặc thông tin album nhạc;
  • Hỗ trợ Google hiểu đúng loại nội dung — ví dụ: phân biệt giữa phim điện ảnh (Movie) và phim tài liệu (DocumentaryFilm), cả hai đều là enumeration con của Movie;
  • Giảm rủi ro bị bỏ qua khi lập chỉ mục do sai định dạng dữ liệu cấu trúc;
  • Phù hợp với tiêu chuẩn JSON-LD và Microdata, được hỗ trợ đầy đủ bởi Google, Bing và Yandex.

Cách hoạt động

Enumeration Schema hoạt động dựa trên nguyên tắc kế thừa lớp (class inheritance) trong schema.org. Mỗi enumeration là một lớp con của Enumeration, và chỉ được dùng như giá trị của một thuộc tính nhất định — không dùng làm kiểu dữ liệu độc lập cho toàn bộ đối tượng.

Ví dụ: thuộc tính albumProductionType của MusicAlbum yêu cầu giá trị thuộc kiểu MusicAlbumProductionType. Bạn không thể gán "albumProductionType": "independent" dưới dạng chuỗi — mà phải dùng URI chuẩn: "albumProductionType": "https://schema.org/IndependentRelease" hoặc viết ngắn gọn theo quy ước JSON-LD: "albumProductionType": {"@id": "https://schema.org/IndependentRelease"}.

Một số enumeration còn hỗ trợ giá trị rút gọn (shorthand) trong JSON-LD nếu được khai báo đúng namespace — nhưng điều này phụ thuộc vào cách triển khai của công cụ xử lý.

Hướng dẫn thực hiện

  1. Xác định nhu cầu: Kiểm tra xem thuộc tính bạn muốn đánh dấu có yêu cầu enumeration không — tra cứu tại schema.org hoặc Google’s Structured Data Guide.
  2. Chọn enumeration phù hợp: Ví dụ, nếu mô tả ngày phát hành sự kiện, dùng DayOfWeek; nếu mô tả loại sách, dùng BookFormatType (như Paperback, EBook).
  3. Định dạng đúng: Dùng một trong hai cách:
    • URI đầy đủ: "dayOfWeek": "https://schema.org/Monday"
    • JSON-LD shorthand (nếu có @context): "dayOfWeek": "Monday" — nhưng chỉ khi khai báo @context: "https://schema.org" và công cụ hỗ trợ.
  4. Kiểm tra bằng công cụ: Dùng URL Inspection Tool hoặc Schema Markup Validator để xác minh lỗi cú pháp và tính hợp lệ.
  5. Triển khai ổn định: Đảm bảo enumeration không thay đổi theo thời gian — ví dụ: không dùng "status": "đang cập nhật" thay vì "itemStatus": "https://schema.org/InStock".

Lỗi thường gặp

Lỗi Nguyên nhân Cách khắc phục
Dùng chuỗi thô thay vì URI hoặc giá trị chuẩn Gán "musicGroup": "rock" thay vì "genre": "https://schema.org/RockMusic" Luôn tra cứu giá trị hợp lệ tại schema.org; dùng URI đầy đủ hoặc shorthand được hỗ trợ.
Sai cấp lớp (type mismatch) Dùng "@type": "BookFormatType" cho toàn bộ đối tượng thay vì chỉ làm giá trị của bookFormat Enumeration không phải kiểu đối tượng — chỉ dùng làm giá trị thuộc tính, không dùng làm @type chính.
Thiếu khai báo @context Dùng shorthand như "Monday" nhưng không có @context: "https://schema.org" Thêm @context trong JSON-LD hoặc chuyển sang dùng URI đầy đủ.

Ví dụ thực tế

Dưới đây là đoạn JSON-LD đánh dấu một sự kiện âm nhạc với enumeration đúng:

{ "@context": "https://schema.org", "@type": "Event", "name": "Liên hoan Jazz Hà Nội 2024", "startDate": "2024-10-15T19:00", "location": { "@type": "Place", "name": "Nhà hát Lớn Hà Nội" }, "dayOfWeek": ["https://schema.org/Monday", "https://schema.org/Friday"], "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode", "eventStatus": "https://schema.org/EventScheduled" }

Trong ví dụ này, dayOfWeek, eventAttendanceModeeventStatus đều là enumeration — mỗi giá trị đều trỏ đến URI chuẩn của schema.org. Việc này giúp Google xác định rõ tần suất tổ chức, hình thức tham gia và trạng thái sự kiện.

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

Enumeration Schema có bắt buộc không?

Không bắt buộc, nhưng khuyến khích mạnh nếu thuộc tính bạn dùng yêu cầu enumeration. Bỏ qua có thể khiến dữ liệu cấu trúc bị coi là không đầy đủ hoặc không hợp lệ — dẫn đến không hiển thị rich result.

Có thể tự tạo enumeration không?

Không. schema.org không cho phép người dùng định nghĩa enumeration mới. Chỉ các giá trị do schema.org phê duyệt mới được công nhận. Nếu cần phân loại riêng, dùng thuộc tính văn bản thông thường (ví dụ: customCategory) — nhưng sẽ không được hỗ trợ trong rich result.

Enumeration có thay đổi theo thời gian không?

Có thể thay đổi — schema.org cập nhật định kỳ. Một số enumeration bị đánh dấu deprecated, hoặc thêm giá trị mới (ví dụ: VideoGame bổ sung VirtualRealityGame). Cần theo dõi trang schema.org releases để cập nhật kịp thời.