自定義dtd

自定義dtd可以寫在xml裏面而不必引入外部鏈接.

下面的一套dtd

.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE config [ //注1
  <!ELEMENT config (jdbcDriver,jdbcUrl,jdbcSchema,jdbcUser,jdbcPassword,tables)> //注2
  <!ELEMENT jdbcDriver      (#PCDATA)>//注3
  <!ELEMENT jdbcUrl    (#PCDATA)>
  <!ELEMENT jdbcSchema      (#PCDATA)>
  <!ELEMENT jdbcUser (#PCDATA)>
  <!ELEMENT jdbcPassword    (#PCDATA)>
  
  
  <!ELEMENT tables    (table+)>//注4
  
  
  <!ELEMENT table    (column*)>//注5
  <!ATTLIST table tableName CDATA #REQUIRED>//注6
  <!ATTLIST table count CDATA #REQUIRED>//注7
  
  <!ELEMENT column  EMPTY>//注8
  <!ATTLIST column columnName CDATA #REQUIRED>//注9
  <!ATTLIST column className CDATA #IMPLIED>//注10
  <!ATTLIST column methodName CDATA #IMPLIED>
  <!ATTLIST column params CDATA #IMPLIED>
]>

註釋:

1.根標籤是config

2.根標籤下面一共有5個標籤,這5個標籤不能少,也不能重複多個,分別是jdbcDriver,jdbcUrl,jdbcSchema,jdbcUser,jdbcPassword,tables

3.其中jdbcDriver,jdbcUrl,jdbcSchema,jdbcUser,jdbcPassword內部是字符串

4.tables內部是table標籤,且table標籤數量大於等於1

5.table標籤內部是column標籤,標籤數量大於等於0

6.table標籤有屬性叫做tableName="",內容是CDATA(自定義填字符串)類型的,不是引用其他標籤.且是必須的required

7.table標籤有屬性叫做count="",內容是CDATA(自定義填字符串)類型的,不是引用其他標籤.且是必須的.

8.column標籤內部是空的.是自閉合標籤

9.column標籤有屬性叫做columnName ="",內容是CDATA(自定義填字符串)類型的,不是引用其他標籤.且是必須的.

10.column標籤有其他三個屬性內容是CDATA(自定義填字符串)類型的,不是引用其他標籤.不是是必須的.

 

當然也可以寫成一個dtd文件,由外部引入,如下寫了個aa.dtd


  <!ELEMENT config (jdbcDriver,jdbcUrl,jdbcSchema,jdbcUser,jdbcPassword)>
  <!ELEMENT jdbcDriver      (#PCDATA)>
  <!ELEMENT jdbcUrl    (#PCDATA)>
  <!ELEMENT jdbcSchema      (#PCDATA)>
  <!ELEMENT jdbcUser (#PCDATA)>
  <!ELEMENT jdbcPassword    (#PCDATA)>

在xml裏引入,可以是相對路徑,也可以是絕對路徑

<!DOCTYPE config SYSTEM "aa.dtd">

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章