以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  这个XML的DTD文件如何写呢?[讨论]  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=128095)


--  作者:herowuking
--  发布时间:3/13/2014 9:01:00 PM

--  这个XML的DTD文件如何写呢?[讨论]
<?xml version="1.0" encoding="UTF-8"?>
<!-- 内置DTD规范 -->
<!DOCTYPE myCONFIG [
 <!ENTITY AUTHOR "Herowuking">
 <!ENTITY COMPANY "CN.CQ.CIGIT">
 <!ENTITY EMAIL "wuying283@qq.com">
 <!ELEMENT myCONFIG (SysConfig, SoftFuncCOnfig, UIConfig, DbConfig, UsrConfig)>
 <!ELEMENT SysConfig (OS, JRE, InstallPath)>
 <!ELEMENT SoftFuncConfig (Func1, Func2, Func3, Func4, Func5, Func6, Func7)>
 <!ELEMENT UIConfig (Theme, menuFont, contentFont)>
 <!ELEMENT DbConfig (Source, dbName)>
 <!ELEMENT UsrConfig (SuperUsr)>
 <!--下面的属性我就不会写了。。,总是在XMLSPY里面报错!>
         <!ATTLIST OS
  type (Windows | Mac | Linux) "Windows"
 >
        <!-- 下面几个模块开关 On/Off 怎么写,默认On>
 <!ATTLIST Func1
  name (用户模块) "用户模块"
 >
 <!ATTLIST Func2
  name (采购管理) "采购管理"
 >
 <!ATTLIST Func3
  name (外协管理) "外协管理"
 >
 <!ATTLIST Func4
  name (项目管理) "项目管理"
 >
 <!ATTLIST Func5
  name (专利文章) "专利文章"
 >
 <!ATTLIST Func6
  name (论坛模块) "论坛模块"
 >
 <!ATTLIST Func7
  name (帮助系统) "帮助系统"
 >
 <!ATTLIST menuFont
  size (8~10) "12" 
  style (BOLD | ITALIC | NORMAL) "BOLD" 
  color (RGB(0~255,0~255,0~255) #REQUIED
 >
       <!-- 字体设置,字体样式:粗体,斜体,正常,默认粗体>

]>
<!-- 我的XML配置文档 -->
<myCONFIG>
 <!-- 系统设置 -->
 <SysConfig>
  <OS type="Windows">Windows XP</OS>
  <JRE>Jre1.7</JRE>
  <InstallPath>"C:\KJC"</InstallPath>
 </SysConfig>
 <!-- 软件功能设置 -->
 <SoftFuncConfig>
  <Func1 name="用户模块">On</Func1>
  <Func2 name="采购管理">On</Func2>
  <Func3 name="外协管理">On</Func3>
  <Func4 name="项目管理">On</Func4>
  <Func5 name="专利文章">On</Func5>
  <Func6 name="论坛模块">On</Func6>
  <Func7 name="帮助系统">On</Func7>
 </SoftFuncConfig>
 <!-- 界面设置 -->
 <UIConfig>
  <Theme>Classic</Theme>
  <menuFont size="12" style="BLOD" color="RGB(0,0,0)">Yahei</menuFont>
  <contentFont size="12" style="NORMAL" color="RGB(0,0,0)">Yahei</contentFont>
 </UIConfig>
 <!-- 数据库设置 -->
 <DbConfig>
  <Source>MySQL</Source>
  <dbName>Cigit</dbName>
 </DbConfig>
 <!-- 用户设置 -->
 <UsrConfig>
  <SuperUsr>Off</SuperUsr>
 </UsrConfig>
</myCONFIG>

刚学XML,求指教!


[此贴子已经被作者于2014-3-14 10:00:44编辑过]

--  作者:herowuking
--  发布时间:3/13/2014 10:15:00 PM

--  
研究半天,自己贴上答案:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 内置DTD规范 -->
<!DOCTYPE myCONFIG [
 <!ENTITY AUTHOR "Herowuking">
 <!ENTITY COMPANY "CN.CQ.CIGIT">
 <!ENTITY EMAIL "wuying283@qq.com">
 <!ELEMENT myCONFIG (SysConfig, SoftFuncConfig, UIConfig, DbConfig, UsrConfig)>
 <!ELEMENT SysConfig (OS, JRE, InstallPath)>
 <!ELEMENT SoftFuncConfig (Func1, Func2, Func3, Func4, Func5, Func6, Func7)>
 <!ELEMENT UIConfig (Theme, menuFont, contentFont)>
 <!ELEMENT DbConfig (Source, dbName)>
 <!ELEMENT UsrConfig (SuperUsr)>
 <!ELEMENT OS (#PCDATA)>
 <!ELEMENT JRE (#PCDATA)>
 <!ELEMENT InstallPath (#PCDATA)>
 <!ELEMENT Func1 (#PCDATA)>
 <!ELEMENT Func2 (#PCDATA)>
 <!ELEMENT Func3 (#PCDATA)>
 <!ELEMENT Func4 (#PCDATA)>
 <!ELEMENT Func5 (#PCDATA)>
 <!ELEMENT Func6 (#PCDATA)>
 <!ELEMENT Func7 (#PCDATA)>
 <!ELEMENT Theme (#PCDATA)>
 <!ELEMENT menuFont (#PCDATA)>
 <!ELEMENT contentFont (#PCDATA)>
 <!ELEMENT Source (#PCDATA)>
 <!ELEMENT dbName (#PCDATA)>
 <!ELEMENT SuperUsr (#PCDATA)>
 <!ATTLIST OS
  type (Windows | Mac | Linux) "Windows"
 >
 <!ATTLIST Func1
  name (用户模块) "用户模块"
 >
 <!ATTLIST Func2
  name (采购管理) "采购管理"
 >
 <!ATTLIST Func3
  name (外协管理) "外协管理"
 >
 <!ATTLIST Func4
  name (项目管理) "项目管理"
 >
 <!ATTLIST Func5
  name (专利文章) "专利文章"
 >
 <!ATTLIST Func6
  name (论坛模块) "论坛模块"
 >
 <!ATTLIST Func7
  name (帮助系统) "帮助系统"
 >
 <!ATTLIST menuFont
  size (12 | 14 | 16 | 18) "12" 
  style (BOLD | ITALIC | NORMAL) "BOLD" 
  color CDATA #IMPLIED
 >
 <!ATTLIST contentFont
  size (12 | 14 | 16 | 18) "12" 
  style (BOLD | ITALIC | NORMAL) "BOLD" 
  color CDATA #IMPLIED
 >
]>
<!-- 我的XML配置文档 -->
<myCONFIG>
 <!-- 系统设置 -->
 <SysConfig>
  <OS type="Windows">Windows XP</OS>
  <JRE>Jre1.7</JRE>
  <InstallPath>"C:\KJC"</InstallPath>
 </SysConfig>
 <!-- 软件功能设置 -->
 <SoftFuncConfig>
  <Func1 name="用户模块">On</Func1>
  <Func2 name="采购管理">On</Func2>
  <Func3 name="外协管理">On</Func3>
  <Func4 name="项目管理">On</Func4>
  <Func5 name="专利文章">On</Func5>
  <Func6 name="论坛模块">On</Func6>
  <Func7 name="帮助系统">On</Func7>
 </SoftFuncConfig>
 <!-- 界面设置 -->
 <UIConfig>
  <Theme>Classic</Theme>
  <menuFont size="12" style="BOLD" color="RGB(0,0,0)">Yahei</menuFont>
  <contentFont size="12" style="NORMAL" color="RGB(0,0,0)">Yahei</contentFont>
 </UIConfig>
 <!-- 数据库设置 -->
 <DbConfig>
  <Source>MySQL</Source>
  <dbName>Cigit</dbName>
 </DbConfig>
 <!-- 用户设置 -->
 <UsrConfig>
  <SuperUsr>Off</SuperUsr>
 </UsrConfig>
</myCONFIG>

这个练习告诉我:
1.DTD里面所有元素必须用<!ELEMENT。。>定义,否则后面的ATTLIST属性就没法解析
2.O 与 o,区分大小写
3.元素 后面的括号里面,除了子属性列表之外,还可以放内容描述 #PCDATA,#CDATA不一样


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms