Hướng dẫn sgml html - html sgml

Khi bạn nhìn vào SGML, HTML và XML, bạn có thể xem xét việc nhóm gia đình này. SMGL, HTML và XML là tất cả các ngôn ngữ đánh dấu . Thuật ngữ đánh dấu có gốc từ các biên tập viên để sửa đổi các bản thảo của nhà văn. Một biên tập viên, khi xem xét nội dung, sẽ 'đánh dấu ‚bản thảo để làm nổi bật một số trường nhất định. Trong công nghệ máy tính, một ngôn ngữ đánh dấu là một tập hợp các từ và ký hiệu làm nổi bật văn bản để xác định nó cho một tài liệu web. Ví dụ, khi tạo một trang Internet, bạn muốn có thể có các đoạn văn riêng biệt và đặt các chữ cái in đậm. Điều này được thực hiện thông qua một ngôn ngữ đánh dấu. Một khi bạn hiểu được vai trò của SGML, HTML và XML trong thiết kế trang web, bạn sẽ thấy quan hệ họ hàng với những ngôn ngữ riêng biệt này. Mối quan hệ giữa SGML, HTML và XML là một liên kết gia đình giúp làm cho trang web hoạt động và thiết kế web năng động.

SGML

Trong họ ngôn ngữ đánh dấu này, Ngôn ngữ đánh dấu tổng quát chuẩn (SGML) là phụ huynh. SGML cung cấp cách xác định ngôn ngữ đánh dấu và đặt tiêu chuẩn cho biểu mẫu của chúng. Nói cách khác, SGML nêu rõ một số ngôn ngữ có thể hoặc không thể làm, những yếu tố nào phải được bao gồm, chẳng hạn như thẻ và cấu trúc cơ bản của ngôn ngữ. Khi phụ huynh chuyển các đặc điểm di truyền cho một đứa trẻ, SGML chuyển các quy tắc cấu trúc và định dạng cho các ngôn ngữ đánh dấu.

HTML

Ngôn ngữ đánh dấu siêu văn bản (HTML) là một đứa trẻ, hoặc ứng dụng, của SGML. Đó là HTML thường thiết kế trang cho trình duyệt Internet. Sử dụng HTML, bạn có thể nhúng hình ảnh, tạo các phần trang, thiết lập phông chữ và hướng dòng chảy của trang. HTML là ngôn ngữ đánh dấu tạo biểu mẫu và giao diện của trang web. Ngoài ra, bằng cách sử dụng HTML, bạn có thể thêm các chức năng khác vào một trang web thông qua các ngôn ngữ kịch bản, chẳng hạn như JavaScript. HTML là ngôn ngữ chủ yếu được sử dụng cho thiết kế trang web.

XML

Ngôn ngữ đánh dấu mở rộng (XML) là một người anh em họ với HTML và một cháu trai của SGML. Mặc dù XML là một ngôn ngữ đánh dấu và do đó là một phần của gia đình, nó có các chức năng khác với HTML. XML là một tập hợp con của SGML - cung cấp cho nó các quyền mà một ứng dụng, chẳng hạn như HTML, không có. XML có thể định nghĩa các ứng dụng của riêng nó. Định dạng mô tả tài nguyên (RDF) là một ứng dụng của XML. HTML được giới hạn trong thiết kế và không có tập hợp con hoặc ứng dụng. XML là một phiên bản SGML được ánh xạ xuống hoặc nhẹ, được thiết kế để hoạt động với băng thông hạn chế. XML thừa kế các đặc điểm di truyền từ SGML, nhưng được tạo ra để tạo ra gia đình riêng của nó. Các tập con của XML bao gồm XSL và XSLT.

Nội dung

  1. Giới thiệu về SGML
  2. Các cấu trúc SGML được sử dụng trong HTML
    1. Các yếu tố
    2. Thuộc tính
    3. Tài liệu tham khảo nhân vật
    4. Bình luận
  3. Cách đọc HTML DTD
    1. Nhận xét DTD
    2. Định nghĩa thực thể tham số
    3. Khai báo yếu tố
      • Định nghĩa mô hình nội dung
    4. Tuyên bố thuộc tính
      • Các thực thể DTD trong định nghĩa thuộc tính
      • Thuộc tính Boolean

Phần này của tài liệu giới thiệu SGML và thảo luận về mối quan hệ của nó với HTML. Một cuộc thảo luận đầy đủ về SGML được để lại theo tiêu chuẩn (xem [ISO8879]).SGML and discusses its relationship to HTML. A complete discussion of SGML is left to the standard (see [ISO8879]).

3.1 Giới thiệu về SGML

SGML là một hệ thống để xác định ngôn ngữ đánh dấu. Các tác giả đánh dấu các tài liệu của họ bằng cách đại diện cho thông tin cấu trúc, trình bày và ngữ nghĩa cùng với nội dung. HTML là một ví dụ về ngôn ngữ đánh dấu. Dưới đây là một ví dụ về tài liệu HTML:markup languages. Authors mark up their documents by representing structural, presentational, and semantic information alongside content. HTML is one example of a markup language. Here is an example of an HTML document:



   
      My first HTML document
   
   
      

Hello world!

Một tài liệu HTML được chia thành một phần đầu (ở đây, giữa và) và một cơ thể (ở đây, giữa và). Tiêu đề của tài liệu xuất hiện trong đầu (cùng với thông tin khác về tài liệu) và nội dung của tài liệu xuất hiện trong cơ thể. Cơ thể trong ví dụ này chỉ chứa một đoạn văn, được đánh dấu.

Mỗi ngôn ngữ đánh dấu được xác định trong SGML được gọi là ứng dụng SGML. Một ứng dụng SGML thường được đặc trưng bởi:SGML application. An SGML application is generally characterized by:

  1. Một tuyên bố SGML. Tuyên bố SGML chỉ định ký tự và dấu phân cách nào có thể xuất hiện trong ứng dụng.SGML declaration specifies which characters and delimiters may appear in the application.
  2. Một định nghĩa loại tài liệu (DTD). DTD xác định cú pháp của các cấu trúc đánh dấu. DTD có thể bao gồm các định nghĩa bổ sung như tham chiếu thực thể ký tự.DTD defines the syntax of markup constructs. The DTD may include additional definitions such as character entity references.
  3. Một đặc điểm kỹ thuật mô tả các ngữ nghĩa được gán cho đánh dấu. Thông số kỹ thuật này cũng áp đặt các hạn chế cú pháp không thể được thể hiện trong DTD.
  4. Các trường hợp tài liệu chứa dữ liệu (nội dung) và đánh dấu. Mỗi trường hợp chứa một tham chiếu đến DTD sẽ được sử dụng để giải thích nó.

Thông số kỹ thuật này bao gồm khai báo SGML, ba định nghĩa loại tài liệu (xem phần trên thông tin phiên bản HTML để biết mô tả của ba) và danh sách các tài liệu tham khảo ký tự.

3.2 Các cấu trúc SGML được sử dụng trong HTML

Các phần sau đây giới thiệu các cấu trúc SGML được sử dụng trong HTML.

Phụ lục liệt kê một số tính năng SGML không được hỗ trợ rộng rãi bởi các công cụ HTML và đại lý người dùng và nên tránh.

3.2.1 Các yếu tố

Một định nghĩa loại tài liệu SGML khai báo các loại phần tử đại diện cho các cấu trúc hoặc hành vi mong muốn. HTML bao gồm các loại phần tử đại diện cho các đoạn văn, liên kết siêu văn bản, danh sách, bảng, hình ảnh, v.v. element types that represent structures or desired behavior. HTML includes element types that represent paragraphs, hypertext links, lists, tables, images, etc.

Mỗi khai báo loại phần tử thường mô tả ba phần: thẻ bắt đầu, nội dung và thẻ cuối.element type declaration generally describes three parts: a start tag, content, and an end tag.

Tên của phần tử xuất hiện trong thẻ bắt đầu (được viết) và thẻ cuối (được viết); Lưu ý dấu gạch chéo trước tên phần tử trong thẻ cuối. Ví dụ: các thẻ bắt đầu và kết thúc của loại UL Element phân định các mục trong danh sách:start tag (written ) and the end tag (written ); note the slash before the element name in the end tag. For example, the start and end tags of the UL element type delimit the items in a list:

  • ...list item 1...

  • ...list item 2...

Một số loại phần tử HTML cho phép các tác giả bỏ qua các thẻ cuối (ví dụ: các loại phần tử P và Li). Một vài loại phần tử cũng cho phép các thẻ bắt đầu bị bỏ qua; Ví dụ, đầu và cơ thể. HTML DTD chỉ ra cho mỗi loại phần tử cho dù thẻ bắt đầu và thẻ kết thúc có được yêu cầu hay không. omit end tags (e.g., the P and LI element types). A few element types also allow the start tags to be omitted; for example, HEAD and BODY. The HTML DTD indicates for each element type whether the start tag and end tag are required.

Một số loại phần tử HTML không có nội dung. Ví dụ, phần tử phá vỡ dòng BR không có nội dung; Vai trò duy nhất của nó là chấm dứt một dòng văn bản. Các yếu tố trống như vậy không bao giờ có thẻ cuối. Định nghĩa loại tài liệu và văn bản của đặc điểm kỹ thuật cho biết liệu một loại phần tử trống (không có nội dung) hoặc, nếu nó có thể có nội dung, những gì được coi là nội dung pháp lý. empty elements never have end tags. The document type definition and the text of the specification indicate whether an element type is empty (has no content) or, if it can have content, what is considered legal content.

Tên phần tử luôn không nhạy cảm trường hợp. case-insensitive.

Vui lòng tham khảo tiêu chuẩn SGML để biết thông tin về các quy tắc điều chỉnh các yếu tố (ví dụ: chúng phải được lồng đúng, một thẻ kết thúc đóng, trở lại thẻ bắt đầu phù hợp, tất cả các thẻ bắt đầu can thiệp không có thông tin với thẻ cuối bị bỏ qua (Phần 7.5.1), v.v. ).

Ví dụ: đoạn sau:

This is the first paragraph.

...a block element...

có thể được viết lại mà không có thẻ cuối của nó:

This is the first paragraph. ...a block element...

Vì thẻ bắt đầu được đóng bởi phần tử khối sau. Tương tự, nếu một đoạn văn được đặt bởi một phần tử khối, như trong:

This is the paragraph.

Thẻ cuối của phần tử khối kèm theo (ở đây,) ngụ ý thẻ cuối của thẻ bắt đầu mở.

Các yếu tố không phải là thẻ. Một số người gọi các yếu tố là thẻ (ví dụ: "thẻ p"). Hãy nhớ rằng phần tử là một thứ và thẻ (có thể là thẻ bắt đầu hoặc kết thúc) là một thứ khác. Chẳng hạn, phần tử đầu luôn có mặt, mặc dù cả thẻ đầu bắt đầu và đầu có thể bị thiếu trong đánh dấu. Some people refer to elements as tags (e.g., "the P tag"). Remember that the element is one thing, and the tag (be it start or end tag) is another. For instance, the HEAD element is always present, even though both start and end HEAD tags may be missing in the markup.

Tất cả các loại phần tử được khai báo trong thông số kỹ thuật này được liệt kê trong chỉ mục phần tử.

3.2.2 Thuộc tính

Các phần tử có thể có các thuộc tính liên quan, được gọi là thuộc tính, có thể có các giá trị (theo mặc định hoặc được đặt bởi các tác giả hoặc tập lệnh). Các cặp thuộc tính/giá trị xuất hiện trước lần ">" cuối cùng của thẻ bắt đầu của phần tử. Bất kỳ số của các cặp giá trị thuộc tính (hợp pháp), được phân tách bằng không gian, có thể xuất hiện trong thẻ bắt đầu của một phần tử. Họ có thể xuất hiện theo bất kỳ thứ tự nào.attributes, which may have values (by default, or set by authors or scripts). Attribute/value pairs appear before the final ">" of an element's start tag. Any number of (legal) attribute value pairs, separated by spaces, may appear in an element's start tag. They may appear in any order.

Trong ví dụ này, thuộc tính ID được đặt cho phần tử H1:

This is an identified heading thanks to the id attribute

Theo mặc định, SGML yêu cầu tất cả các giá trị thuộc tính phải được phân định bằng cách sử dụng các dấu ngoặc kép (ASCII thập phân 34) hoặc dấu ngoặc kép đơn (ASCII thập phân 39). Dấu trích dẫn đơn có thể được bao gồm trong giá trị thuộc tính khi giá trị được phân định bằng các dấu ngoặc kép và ngược lại. Các tác giả cũng có thể sử dụng tham chiếu ký tự số để đại diện cho trích dẫn kép (") và trích dẫn đơn ('). Đối với các trích dẫn kép, các tác giả cũng có thể sử dụng tham chiếu thực thể ký tự & quot ;.delimited using either double quotation marks (ASCII decimal 34) or single quotation marks (ASCII decimal 39). Single quote marks can be included within the attribute value when the value is delimited by double quote marks, and vice versa. Authors may also use numeric character references to represent double quotes (") and single quotes ('). For double quotes authors can also use the character entity reference ".

Trong một số trường hợp nhất định, các tác giả có thể chỉ định giá trị của một thuộc tính mà không có bất kỳ dấu ngoặc kép nào. Giá trị thuộc tính chỉ có thể chứa các chữ cái (a-z và a-z), các chữ số (0-9), dấu gạch nối (ascii decimal 45), thời kỳ (ascii decimal 46), nhấn mạnh (ascii decimal 95) và colon (ascii decimal 58). Chúng tôi khuyên bạn nên sử dụng dấu ngoặc kép ngay cả khi có thể loại bỏ chúng.

Tên thuộc tính luôn không nhạy cảm trường hợp.case-insensitive.

Giá trị thuộc tính thường không nhạy cảm trường hợp. Định nghĩa của mỗi thuộc tính trong hướng dẫn tham khảo cho biết liệu giá trị của nó có nhạy cảm trường hợp hay không.case-insensitive. The definition of each attribute in the reference manual indicates whether its value is case-insensitive.

Tất cả các thuộc tính được xác định bởi thông số kỹ thuật này được liệt kê trong chỉ mục thuộc tính.

3.2.3 Tài liệu tham khảo ký tự

Tài liệu tham khảo ký tự là tên số hoặc biểu tượng cho các ký tự có thể được bao gồm trong tài liệu HTML. Chúng rất hữu ích cho việc đề cập đến các ký tự hiếm khi được sử dụng hoặc các công cụ tác giả gây khó khăn hoặc không thể nhập. Bạn sẽ thấy các tài liệu tham khảo ký tự trong suốt tài liệu này; Họ bắt đầu với một dấu hiệu "&" kết thúc bằng một đại hội (;). Một số ví dụ phổ biến bao gồm: are numeric or symbolic names for characters that may be included in an HTML document. They are useful for referring to rarely used characters, or those that authoring tools make it difficult or impossible to enter. You will see character references throughout this document; they begin with a "&" sign and end with a semi-colon (;). Some common examples include:

  • "& lt;" đại diện cho
  • "& gt;" đại diện cho> dấu.
  • "& quot;" đại diện cho "dấu hiệu.
  • "å" (trong thập phân) đại diện cho chữ "A" với một vòng tròn nhỏ phía trên nó.
  • "И" (trong số thập phân) đại diện cho chữ số vốn cyrillic "i".
  • "水" (trong thập lục phân) đại diện cho nhân vật Trung Quốc cho nước.

Chúng tôi thảo luận chi tiết về tài liệu tham khảo ký tự HTML sau trong phần trên bộ ký tự tài liệu HTML. Thông số kỹ thuật cũng chứa một danh sách các tài liệu tham khảo ký tự có thể xuất hiện trong tài liệu HTML 4.

3.2.4 Nhận xét

Nhận xét HTML có cú pháp sau: have the following syntax:


Không gian trắng không được phép giữa DEMUP Tuyên bố Open Delimiter (""). Một lỗi phổ biến là bao gồm một chuỗi các dấu gạch nối ("---") trong một bình luận. Các tác giả nên tránh đặt hai hoặc nhiều dấu gạch nối liền kề bên trong các bình luận.

Thông tin xuất hiện giữa các bình luận không có ý nghĩa đặc biệt (ví dụ: các tài liệu tham khảo ký tự không được giải thích như vậy).

Lưu ý rằng ý kiến ​​là đánh dấu.

3.3 Cách đọc HTML DTD

Mỗi phần tử và khai báo thuộc tính trong thông số kỹ thuật này được đi kèm với đoạn định nghĩa loại tài liệu của nó. Chúng tôi đã chọn bao gồm các đoạn DTD trong đặc điểm kỹ thuật thay vì tìm kiếm một phương tiện dễ tiếp cận hơn, nhưng dài hơn và ít chính xác hơn để mô tả các thuộc tính của một yếu tố. Hướng dẫn sau đây sẽ cho phép độc giả không quen thuộc với SGML để đọc DTD và hiểu các chi tiết kỹ thuật của đặc tả HTML. tutorial should allow readers unfamiliar with SGML to read the DTD and understand the technical details of the HTML specification.

3.3.1 Nhận xét DTD

Trong DTD, nhận xét có thể trải rộng trên một hoặc nhiều dòng. Trong DTD, các bình luận được phân định bởi một cặp dấu "-", ví dụ:comments may spread over one or more lines. In the DTD, comments are delimited by a pair of "--" marks, e.g.

Ở đây, nhận xét "giá trị thuộc tính được đặt tên" giải thích việc sử dụng loại phần tử param. Nhận xét trong DTD chỉ là thông tin.

3.3.2 Định nghĩa thực thể tham số

HTML DTD bắt đầu với một loạt các định nghĩa thực thể tham số. Một định nghĩa thực thể tham số xác định một loại macro có thể được tham chiếu và mở rộng ở nơi khác trong DTD. Các macro này có thể không xuất hiện trong các tài liệu HTML, chỉ trong DTD. Các loại macro khác, được gọi là tham chiếu ký tự, có thể được sử dụng trong văn bản của tài liệu HTML hoặc trong các giá trị thuộc tính.parameter entity definition defines a kind of macro that may be referenced and expanded elsewhere in the DTD. These macros may not appear in HTML documents, only in the DTD. Other types of macros, called character references, may be used in the text of an HTML document or within attribute values.

Khi thực thể tham số được gọi theo tên trong DTD, nó sẽ được mở rộng thành một chuỗi.

Một định nghĩa thực thể tham số bắt đầu với từ khóa. Các thể hiện của các thực thể tham số trong DTD bắt đầu với "%", sau đó tên thực thể tham số và chấm dứt bởi một tùy chọn ";".

Ví dụ sau đây xác định chuỗi rằng "%fontstyle;" Thực thể sẽ mở rộng sang.

Chuỗi thực thể tham số mở rộng thành có thể chứa các tên thực thể tham số khác. Những cái tên này được mở rộng đệ quy. Trong ví dụ sau, "%nội tuyến;" Thực thể tham số được xác định để bao gồm "%fontstyle;", "%cụm từ;", "%đặc biệt;" và "%formctrl;" thực thể tham số.

Bạn sẽ gặp hai thực thể DTD thường xuyên trong HTML DTD: "%khối;" "%nội tuyến;". Chúng được sử dụng khi mô hình nội dung bao gồm các phần tử cấp khối và nội tuyến, tương ứng (được xác định trong phần trên cấu trúc toàn cầu của tài liệu HTML)."%block;" "%inline;". They are used when the content model includes block-level and inline elements, respectively (defined in the section on the global structure of an HTML document).

3.3.3 Khai báo phần tử

Phần lớn của HTML DTD bao gồm các khai báo của các loại phần tử và các thuộc tính của chúng. Nhân vật kết thúc nó. Giữa những điều này được chỉ định: element types and their attributes. The character ends it. Between these are specified:

  1. Tên của phần tử.
  2. Liệu các thẻ của phần tử có phải là tùy chọn hay không. Hai dấu gạch nối xuất hiện sau tên phần tử có nghĩa là các thẻ bắt đầu và kết thúc là bắt buộc. Một dấu gạch nối theo sau là chữ cái "O" chỉ ra rằng thẻ cuối có thể được bỏ qua. Một cặp chữ cái "o" chỉ ra rằng cả thẻ bắt đầu và kết thúc đều có thể được bỏ qua.optional. Two hyphens that appear after the element name mean that the start and end tags are mandatory. One hyphen followed by the letter "O" indicates that the end tag can be omitted. A pair of letter "O"s indicate that both the start and end tags can be omitted.
  3. Nội dung của phần tử, nếu có. Nội dung được phép cho một phần tử được gọi là mô hình nội dung của nó. Các loại phần tử được thiết kế để không có nội dung được gọi là các phần tử trống. Mô hình nội dung cho các loại phần tử như vậy được khai báo bằng cách sử dụng từ khóa "trống".content model. Element types that are designed to have no content are called empty elements. The content model for such element types is declared using the keyword "EMPTY".

Trong ví dụ này:

  • ...list item 1...

  • ...list item 2...

0
  • Loại phần tử được khai báo là UL.UL.
  • Hai dấu gạch nối chỉ ra rằng cả thẻ bắt đầu và thẻ cuối cho loại phần tử này đều được yêu cầu.
  • Mô hình nội dung cho loại phần tử này được tuyên bố là "ít nhất một phần tử Li". Dưới đây, chúng tôi giải thích cách chỉ định các mô hình nội dung.

Ví dụ này minh họa tuyên bố của một loại phần tử trống:

  • ...list item 1...

  • ...list item 2...

1
  • Loại phần tử được khai báo là IMG.IMG.
  • Bạch cầu và "O" sau đây chỉ ra rằng thẻ cuối có thể được bỏ qua, nhưng cùng với mô hình nội dung "trống", điều này được củng cố theo quy tắc mà thẻ cuối phải được bỏ qua.must be omitted.
  • Từ khóa "trống" có nghĩa là các phiên bản của loại này không phải có nội dung.

Định nghĩa mô hình nội dung & NBSP;

Mô hình nội dung mô tả những gì có thể được chứa bởi một thể hiện của một loại phần tử. Định nghĩa mô hình nội dung có thể bao gồm: Content model definitions may include:

  • Tên của các loại phần tử được phép hoặc bị cấm (ví dụ: phần tử UL chứa các phiên bản của loại phần tử Li và loại phần tử P có thể không chứa các phần tử p khác).
  • Các thực thể DTD (ví dụ: phần tử nhãn chứa các phiên bản của "%nội tuyến;" thực thể tham số).
  • Văn bản tài liệu (được chỉ định bởi cấu trúc SGML "#pcdata"). Văn bản có thể chứa các tài liệu tham khảo ký tự. Hãy nhớ lại rằng những điều này bắt đầu với & và kết thúc bằng một dấu chấm phẩy (ví dụ: "Cuộc phiêu lưu của Tintin" của Herg & Eacute; chứa tài liệu tham khảo thực thể nhân vật cho ký tự "E Acute").

Mô hình nội dung của một phần tử được chỉ định với cú pháp sau. Xin lưu ý rằng danh sách dưới đây là đơn giản hóa các quy tắc cú pháp SGML đầy đủ và không giải quyết, ví dụ: ưu tiên.

(...) phân định một nhóm.aa phải xảy ra, chỉ một lần.a+a phải xảy ra một hoặc nhiều lần. ) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.Phân định một nhóm.aa phải xảy ra, chỉ một lần -(a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.AA phải xảy ra, chỉ một lần.a+A phải xảy ra một hoặc nhiều lần. Không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.Phải xảy ra, chỉ một lần.a+A phải xảy ra một hoặc nhiều lần. Không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A+a phải xảy ra một hoặc nhiều lần. Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A phải xảy ra một hoặc nhiều lần. Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A? A phải xảy ra 0 hoặc một lần.a*a có thể xảy ra bằng 0 hoặc nhiều lần.+(A) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A phải xảy ra bằng không hoặc một lần.a*a có thể xảy ra bằng 0 hoặc nhiều lần.+(A) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A*a có thể xảy ra bằng 0 hoặc nhiều lần.+(A) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A có thể xảy ra bằng 0 hoặc nhiều lần.+(A) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.+(A) A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A có thể xảy ra .- (a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.-(a) A không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.Không phải xảy ra.a | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.A | Phải xảy ra A hoặc B, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.a & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.Hoặc A hoặc B phải xảy ra, nhưng không phải cả hai.a, Bboth A và B phải xảy ra, theo thứ tự đó.A & BBOTH A và B phải xảy ra, theo bất kỳ thứ tự nào.A, Bboth A và B phải xảy ra, theo thứ tự đó.A & BBOTH A và B phải xảy ra, theo bất kỳ thứ tự nào.Cả A và B phải xảy ra, theo thứ tự đó.A & BBOTH A và B phải xảy ra, theo bất kỳ thứ tự nào.A & Bboth A và B phải xảy ra, theo bất kỳ thứ tự nào.Cả A và B phải xảy ra, theo bất kỳ thứ tự nào.

Dưới đây là một số ví dụ từ HTML DTD:

  • ...list item 1...

  • ...list item 2...

2

Phần tử UL phải chứa một hoặc nhiều yếu tố LI.

  • ...list item 1...

  • ...list item 2...

3

Phần tử DL phải chứa một hoặc nhiều phần tử DT hoặc DD theo bất kỳ thứ tự nào.

  • ...list item 1...

  • ...list item 2...

4

Phần tử tùy chọn chỉ có thể chứa văn bản và thực thể, chẳng hạn như & amp; - Điều này được biểu thị bằng kiểu dữ liệu SGML #PCDATA.

Một vài loại phần tử HTML sử dụng tính năng SGML bổ sung để loại trừ các phần tử khỏi mô hình nội dung của chúng. Các yếu tố bị loại trừ được đi trước bởi một dấu gạch nối. Các loại trừ rõ ràng ghi đè các yếu tố được phép.Excluded elements are preceded by a hyphen. Explicit exclusions override permitted elements.

Trong ví dụ này, -(a) biểu thị rằng phần tử A không thể xuất hiện trong một phần tử khác (tức là, neo có thể không được lồng).

  • ...list item 1...

  • ...list item 2...

5

Lưu ý rằng loại phần tử A là một phần của thực thể tham số DTD "%nội tuyến;", nhưng được loại trừ rõ ràng vì -(a).

Tương tự, khai báo loại phần tử sau đây cho biểu mẫu cấm các biểu mẫu lồng nhau:

  • ...list item 1...

  • ...list item 2...

6

3.3.4 Khai báo thuộc tính

Các . Mỗi định nghĩa thuộc tính là một bộ ba xác định:declaration of attributes that an element may take. It is followed by the name of the element in question, a list of attribute definitions, and a closing >. Each attribute definition is a triplet that defines:

  • Tên của một thuộc tính.
  • Loại giá trị của thuộc tính hoặc một tập hợp các giá trị có thể rõ ràng. Các giá trị được xác định rõ ràng bởi DTD là không nhạy cảm trường hợp. Vui lòng tham khảo phần về các loại dữ liệu HTML cơ bản để biết thêm thông tin về các loại giá trị thuộc tính.case-insensitive. Please consult the section on basic HTML data types for more information about attribute value types.
  • Liệu giá trị mặc định của thuộc tính có tiềm ẩn (từ khóa "#Implied") hay không, trong trường hợp đó, giá trị mặc định phải được cung cấp bởi tác nhân người dùng (trong một số trường hợp thông qua kế thừa từ các phần tử cha); luôn luôn được yêu cầu (từ khóa "#Required"); hoặc cố định vào giá trị đã cho (từ khóa "#Fixed"). Một số định nghĩa thuộc tính chỉ định rõ ràng một giá trị mặc định cho thuộc tính.implicit (keyword "#IMPLIED"), in which case the default value must be supplied by the user agent (in some cases via inheritance from parent elements); always required (keyword "#REQUIRED"); or fixed to the given value (keyword "#FIXED"). Some attribute definitions explicitly specify a default value for the attribute.

Trong ví dụ này, thuộc tính tên được xác định cho phần tử bản đồ. Thuộc tính là tùy chọn cho phần tử này.

  • ...list item 1...

  • ...list item 2...

7

Loại giá trị được phép cho thuộc tính được đưa ra dưới dạng CDATA, loại dữ liệu SGML. CDATA là văn bản có thể chứa các tài liệu tham khảo ký tự. CDATA is text that may contain character references.

Để biết thêm thông tin về "CDATA", "Tên", "ID" và các loại dữ liệu khác, vui lòng tham khảo phần này về các loại dữ liệu HTML.

Các ví dụ sau đây minh họa một số định nghĩa thuộc tính:

  • ...list item 1...

  • ...list item 2...

8

Thuộc tính Rowspan yêu cầu các giá trị của loại loại. Giá trị mặc định được đưa ra rõ ràng là "1". Thuộc tính HTTP-Equiv tùy chọn yêu cầu các giá trị của tên loại. Thuộc tính ID tùy chọn yêu cầu các giá trị của loại ID. Thuộc tính Valign tùy chọn bị hạn chế để lấy các giá trị từ SET {top, giữa, dưới, đường cơ sở}.

Các thực thể DTD trong định nghĩa thuộc tính & nbsp;

Định nghĩa thuộc tính cũng có thể chứa tham chiếu thực thể tham số.

Trong ví dụ này, chúng tôi thấy rằng danh sách định nghĩa thuộc tính cho phần tử liên kết bắt đầu bằng "%attrs;" thực thể tham số.

Thẻ bắt đầu: Yêu cầu, Thẻ kết thúc: Cấmrequired, End tag: forbidden

"%Attrs;" Thực thể tham số được định nghĩa như sau:

"%CoreAttrs;" Thực thể tham số trong "%attrs;" Định nghĩa mở rộng như sau:

  • ...list item 1...

  • ...list item 2...

9

"%Attrs;" Thực thể tham số đã được xác định để thuận tiện vì các thuộc tính này được xác định cho hầu hết các loại phần tử HTML."%attrs;" parameter entity has been defined for convenience since these attributes are defined for most HTML element types.

Tương tự, DTD định nghĩa "%URI;" Thực thể tham số là mở rộng vào chuỗi "cdata".

This is the first paragraph.

...a block element...
0

Như ví dụ này minh họa, thực thể tham số "%uri;" Cung cấp cho người đọc DTD nhiều thông tin về loại dữ liệu dự kiến ​​cho một thuộc tính. Các thực thể tương tự đã được xác định cho "%màu;", "%Charset;", "%chiều dài;", "%pixel;", v.v.

Các thuộc tính Boolean & NBSP; 

Một số thuộc tính đóng vai trò của các biến Boolean (ví dụ: thuộc tính đã chọn cho phần tử tùy chọn). Sự xuất hiện của chúng trong thẻ bắt đầu của một phần tử ngụ ý rằng giá trị của thuộc tính là "đúng". Sự vắng mặt của họ ngụ ý một giá trị của "sai".

Các thuộc tính boolean có thể lấy một giá trị đơn lẻ một cách hợp pháp: tên của thuộc tính (ví dụ: được chọn = "đã chọn").

Ví dụ này xác định thuộc tính đã chọn là thuộc tính Boolean.

This is the first paragraph.

...a block element...
1

Thuộc tính được đặt thành "true" bằng cách xuất hiện trong thẻ bắt đầu của phần tử:

This is the first paragraph.

...a block element...
2

Trong HTML, các thuộc tính Boolean có thể xuất hiện ở dạng giảm thiểu - giá trị của thuộc tính xuất hiện một mình trong thẻ bắt đầu của phần tử.Do đó, được chọn có thể được đặt bằng cách viết:minimized form -- the attribute's value appears alone in the element's start tag. Thus, selected may be set by writing:

This is the first paragraph.

...a block element...
3

thay vì:

This is the first paragraph.

...a block element...
4

Các tác giả nên nhận thức được rằng nhiều tác nhân người dùng chỉ nhận ra hình thức giảm thiểu của các thuộc tính Boolean và không phải là hình thức đầy đủ.only recognize the minimized form of boolean attributes and not the full form.