dtd là gì

Đã đăng nhập thg 4 30, 2020 5:01 CH

4 phút đọc

Bạn đang xem: dtd là gì

Ở phần 1 tôi đã trình làng sơ lược về XML là gì. Và tại phần này bản thân tiếp tục giới tiếp về Document Type Definition (DTD) mang đến người xem nhé! Bắt đầu nào là 😉

DTD (Document Type Definition) là gì?

  • Là tư liệu dùng làm khái niệm loại tài liệu cho những thành phần của tư liệu XML.
  • Khi phát âm tư liệu XML, chỉ việc phát âm phần DTD là tiếp tục hiểu rằng cấu hình XML.

Vậy vì sao lại dùng DTD?

  • Với một DTD, từng tệp tin XML rất có thể mang 1 tế bào mô tả định hình của chính nó.
  • Các group song lập rất có thể gật đầu đồng ý một chuẩn chỉnh DTD ñể trao thay đổi tài liệu.
  • Một phần mềm rất có thể dùng một DTD chuẩn chỉnh thể đánh giá tài liệu nhận về kể từ bên phía ngoài coi với hợp thức hay là không.

Các loại khai báo

1. Khai báo DTD nội

  • Nếu DTD được khai báo bên phía trong tệp tin XML được trực thuộc khái niệm DOCTYPE <!DOCTYPE root-element [element-declarations]>

Ví dụ:

<?xml version="1.0"?>
// Khai báo DTD nội
<!DOCTYPE note [
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>
]>
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget
</note>

Mình tiếp tục phân tích và lý giải 1 chút về nội dung bên phía trong nhé :

  • !DOCTYPE note: khái niệm thành phần gốc của tư liệu là note
  • !ELEMENT note: khái niệm thành phần note chứa chấp 4 phần tử: to, from, heading, body
  • !ELEMENT to: khái niệm thành phần lớn nằm trong loại #PCDATA
  • !ELEMENT from: khái niệm thành phần from nằm trong loại #PCDATA
  • !ELEMENT heading: khái niệm thành phần heading nằm trong loại #PCDATA
  • !ELEMENT body: khái niệm thành phần toàn thân nằm trong loại #PCDATA

2. Khai báo DTD ngoại

  • Nếu DTD ñược khai báo bên phía trong tệp tin bên phía ngoài được trực thuộc khái niệm DOCTYPE: <!DOCTYPE root-element SYSTEM "filename">

Ví dụ:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget mạ this weekend!</body>
</note>

// File note.dtd:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

3. Khai báo phần tử

Xem thêm: half angel half devil tattoo

  • Phần tử <!ELEMENT> dùng làm khái niệm loại tài liệu cho 1 thành phần của một tư liệu XML.
<!ELEMENT element-name category>
hoặc
<!ELEMENT element-name (element-content)>
  • Phần tử với loại rỗng: <!ELEMENT element-name EMPTY>. Ví dụ thẻ <br />
  • Phần tử với loại văn bản: <!ELEMENT element-name (#PCDATA)>. Ví dụ:
<!ELEMENT from (#PCDATA)>
  • Phần tử với loại tài liệu bất kỳ: <!ELEMENT element-name ANY>. Ví dụ:
<!ELEMENT note ANY>
  • Định nghĩa thành phần với có một thành phần con: <!ELEMENT element-name (child-name)>. Ví dụ:
<!ELEMENT note (message)>
  • Phần tử với 0 hoặc 1 con: <!ELEMENT element-name (child-name?)>. Ví dụ
<!ELEMENT note (message?)>
  • Phần tử với cùng một trong những thành phần con: <!ELEMENT note (to,from,header,(message|body))>

  • Phần tử chứa chấp thành phần con cái hoặc dữ liệu: <!ELEMENT note (#PCDATA|to|from|header|message)*>

4. Khai báo tính chất với <!ATTLIST>

  • Phần tử <!ATTLIST>dùng nhằm khái niệm loại tư liệu của những tính chất cho 1 thành phần nhập tư liệu XML

<!ATTLIST element-name attribute-name attribute-type default-value>

// DTD:
<!ATTLIST payment type CDATA "check">
// XML:
<payment type="check" />
  • Các loại nằm trong tính:
Kiểu Mô tả
CDATA Thuộc tính này chỉ rất có thể chứa chấp loại tài liệu kí tự
(en1, en2,..) Thuộc tính chỉ nhận độ quý hiếm kể từ list này
ID Giá trị của tính chất này sẽ không được trùng nhau và chính thức vày 1 chữ cái
IDREF Giá trị của tính chất này nên là 1 trong những trong những độ quý hiếm của tính chất ID của những thành phần khác
IDREFS Giá trị của tính chất này nên là những độ quý hiếm của những tính chất với loại ID
NMTOKEN Giá trị là 1 trong những thương hiệu XML hợp ý lệ
NMTOKENS Giá trị là 1 trong những list những thương hiệu XML hợp ý lệ
ENTITY Giá trị là 1 trong những thực thể
ENTITIES Giá trị là 1 trong những list những thực thể
NOTATION Giá trị là tên gọi của một kí hiệu
xml: Giá trị là 1 trong những độ quý hiếm xml ñã ñịnh sẵn

Tránh dùng nằm trong tính? Có một số trong những yếu tố với tính chất, cơ là:

  • Không thể chứa đựng nhiều độ quý hiếm (trong khi thành phần con cái với thể)
  • Không đơn giản và dễ dàng không ngừng mở rộng nhập tương lai
  • Không tế bào mô tả những cấu trúc
  • Khó ñể thao tác vày đoạn mã lập trình
  • Các độ quý hiếm tính chất là ko đơn giản và dễ dàng nhằm đánh giá một DTD

Thực thể

  • Các thực thể là những thay đổi được dùng nhằm khái niệm shortcuts cho tới đoạn text chuẩn chỉnh hoặc những kí tự động quan trọng đặc biệt.
  • Các tham lam chiếu thực thể là những tham lam chiếu cho tới những thực thể
  • Các thực thể rất có thể được khai báo bên phía trong hoặc mặt mày ngoài
    • Khai báo mặt mày trong: <!ENTITY entity-name "entity-value">.
    • Khai báo mặt mày ngoài: <!ENTITY entity-name SYSTEM "URI/URL">
    • Ví dụ:
// Khai báo mặt mày trong
    // DTD:
    <!ENTITY writer "Donald Duck.">
    <!ENTITY copyright "Copyright W3Schools."> 
    // XML:
    <author>&writer;&copyright;</author>
    
// Khai báo mặt mày ngoài
     // DTD:
    <!ENTITY writer SYSTEM
    "http://www.w3schools.com/entities.dtd">
    <!ENTITY copyright SYSTEM
    "http://www.w3schools.com/entities.dtd">
    //XML:
    <author>&writer;&copyright;</author>

Như vậy tôi đã trình làng thêm một định nghĩa mới nhất nhập XML. Phần tiếp sau bản thân tiếp tục trình làng về XML DOM nhé, 1 trong mỗi phần cần thiết của XML.

Xem thêm: nghệ thuật pr bản thân

Thanks for reading💖

Tài liệu tham lam khảo: Bài giảng Tích hợp ý tài liệu & XML - DHBKHN

All rights reserved