XML----DTD-引用,验证,元素属性
DTD主要用来约束xml文件,也可去约束html,xhtml... 可以根据别人提供的dtd文件,写出相对应的xml文件
内部DTD: <?xml version="1.0" encoding="gb2312" standalone="yes"?> <!DOCTYPE NET[ --文档类型定义声明的开始,根元素 <!ELEMENT NET (视频网站,社交网站)> --定义"NET"根元素下面的直接子元素 <!ELEMENT 视频网站 (优酷网,土豆网,爱奇艺)> --代表"视频网站"这个元素下具有那些子元素 <!ELEMENT 优酷网 (开发者,网址)> <!ELEMENT 土豆网 (开发者,网址)> <!ELEMENT 爱奇艺 (开发者,网址)> <!ELEMENT 社交网站 (INSTAGRAM,FACEBOOK,TWITTER)> <!ELEMENT INSTAGRAM (DEVELOPER,URL)> <!ELEMENT FACEBOOK (DEVELOPER,URL)> <!ELEMENT TWITTER (DEVELOPER,URL)> <!ELEMENT DEVELOPER (#PCDATA)> <!ELEMENT URL (#PCDATA)> --代表是的是开发者这个元素下面已经没有子元素了,而且定义了此元素的内容是什么类型,(#PCDATA:文本类型) ]> <NET> <视频网站> <优酷网> <开发者>A Team</开发者> <网址>http://www.youku.com</网址> </优酷网> <土豆网> <开发者>B Team</开发者> <网址>http://www.tudou.com</网址> </土豆网> <爱奇艺> <开发者>C Team</开发者> <网址>http://www.iqiyi.com</网址> </爱奇艺> </视频网站> <社交网站> <INSTAGRAM> <DEVELOPER>AA Team</DEVELOPER> <URL>http://www.instagram.com</URL> </INSTAGRAM> <FACEBOOK> <DEVELOPER>BB Team</DEVELOPER> <URL>http://www.facebook.com</URL> </FACEBOOK> <TWITTER> <DEVELOPER>CC Team</DEVELOPER> <URL>http://www.twitter.com</URL> </TWITTER> </社交网站> </NET> 外部DTD方式: 1. XML文件: <?xml version="1.0" encoding="gb2312" standalone="yes"?> <!DOCTYPE 网站 SYSTEM "net.dtd"> <NET> <视频网站> <优酷网> <开发者>A Team</开发者> <网址>http://www.youku.com</网址> </优酷网> <土豆网> <开发者>B Team</开发者> <网址>http://www.tudou.com</网址> </土豆网> <爱奇艺> <开发者>C Team</开发者> <网址>http://www.iqiyi.com</网址> </爱奇艺> </视频网站> <社交网站> <INSTAGRAM> <DEVELOPER>AA Team</DEVELOPER> <URL>http://www.instagram.com</URL> </INSTAGRAM> <FACEBOOK> <DEVELOPER>BB Team</DEVELOPER> <URL>http://www.facebook.com</URL> </FACEBOOK> <TWITTER> <DEVELOPER>CC Team</DEVELOPER> <URL>http://www.twitter.com</URL> </TWITTER> </社交网站> </NET> 2. DTD文件:文件名为:net.dtd <?xml version="1.0" encoding="gb2312"?> <!ELEMENT NET (视频网站,社交网站)> --定义"NET"根元素下面的直接子元素 <!ELEMENT 视频网站 (优酷网,URL)> <!ELEMENT DEVELOPER (#PCDATA)> <!ELEMENT URL (#PCDATA)> --代表是的是开发者这个元素下面已经没有子元素了,而且定义了此元素的内容是什么类型,(#PCDATA:文本类型) #PCDATA(元素的类型):代表此元素下是纯文本,不能再有子元素的出现 +:代表此元素在xml文档中至少出现一次 *:代表此元素在xml文档中可以不出现,也可以出现多次 ?:代表此元素在xml文档中可以不出现,也可以出现,但是出现的时候,只能出现一次 |:代表此元素在xml文档中是可选的 比如:男|女
用JS来验证XML: <script> function check(){ //创建xml文档解析器对象 var xmldoc = new ActiveXObject("Microsoft.XMLDOM"); //开启xml的校验 xmldoc.validateOnParse = "true"; //加载要载入的xml文档 xmldoc.load("zuoye.xml"); //获取错误的信息 alert(xmldoc.parseError.reason); //获取错误信息出现的位置 alert(xmldoc.parseError.line); } </script> 元素属性基本语法 <!ATTLIST 元素名字 属性名 属性类型 属性的特点 属性名 属性类型 属性的特点 > 属性类型有: CDATA [表示属性值可以是字符或者数字] 属性的特点 #REQUIRED 【该属性必须有】 #IMPLIED 【该属性可以有可以没有】 #FIXED value [该属性的值是固定值] DEFAULT value [默认值]
如: <!ATTLIST 学生 住址 CDATA#IMPLIED 学号 ID#REQUIRED 大佬 IDREFS#REQUIRED > 注意:例中的定义关键字一定要大写,如DOCTYPE、ELEMENT、#PCDATA,且元素名称与数据类型之间也要有空格。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |