首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

【转载】dtd与scheme的差异一

2012-08-24 
【转载】dtd与scheme的区别一一.dtd是什么?document type definition,定义xml的格式的一种方式规则,它是一套

【转载】dtd与scheme的区别一
一.  dtd是什么?document type definition,定义xml的格式的一种方式规则,
它是一套标记的语法规则,定义与元素,子元素,属性及其取值,其中规定了元素的顺序,个数,属性
   1 DTD的语法:<!ELEMENT 元素名称元素内容声明>
   2 DTD元素内容的常用类型:
        EMPTY  表示该元素不能包含任何子元素和文本,仅可以使用属性
        #PCDATA 表明该元素可以包含任何字符数据,但是不能在其中包含任何子元素
   3 定义属性:  <!ATTLIST 元素名称
                       属性名 类型 约束
              >
   4 DTD属性类型:
      CDATA 表明该属性只能包含字符数据
      ID 该属性的取值必须是唯一的
      #REQUIRED 用来告诉XML解析程序,该元素的所有实例都必须有盖属性的值
5、DTD与XML文档关联形式有三种:
    内部DTD,外部DTD,公共DTD
    语法<!DOCTYPE 根元素名称 [定义内容]>
    使用外部DTD用到:<!DOCTYPE 根元素名称 SYSTEM "DTD路径">
    使用公共的DTD语法::<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "DTD路径">

举例:
struts.xml

<!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"        "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>    <constant name="struts.i18n.encoding" value="utf-8"/><include file="struts-default.xml" /><!-- <package name="news"><action name="list" method="list">    <result type="velocity"></result></action></package> --></struts>


struts-2.0.dtd

<?xml version="1.0" encoding="UTF-8"?><!--/* * $Id$ * * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements.  See the NOTICE file * distributed with this work for additional information * regarding copyright ownership.  The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License.  You may obtain a copy of the License at * *  http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied.  See the License for the * specific language governing permissions and limitations * under the License. */--><!-- START SNIPPET: strutsDtd --><!--   Struts configuration DTD.   Use the following DOCTYPE      <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""http://struts.apache.org/dtds/struts-2.0.dtd">--><!ELEMENT struts (package|include|bean|constant)*><!ELEMENT package (result-types?, interceptors?, default-interceptor-ref?, default-action-ref?, default-class-ref?, global-results?, global-exception-mappings?, action*)><!ATTLIST package    name CDATA #REQUIRED    extends CDATA #IMPLIED    namespace CDATA #IMPLIED    abstract CDATA #IMPLIED    externalReferenceResolver NMTOKEN #IMPLIED><!ELEMENT result-types (result-type+)><!ELEMENT result-type (param*)><!ATTLIST result-type    name CDATA #REQUIRED    class CDATA #REQUIRED    default (true|false) "false"><!ELEMENT interceptors (interceptor|interceptor-stack)+><!ELEMENT interceptor (param*)><!ATTLIST interceptor    name CDATA #REQUIRED    class CDATA #REQUIRED><!ELEMENT interceptor-stack (interceptor-ref*)><!ATTLIST interceptor-stack    name CDATA #REQUIRED><!ELEMENT interceptor-ref (param*)><!ATTLIST interceptor-ref    name CDATA #REQUIRED><!ELEMENT default-interceptor-ref (#PCDATA)><!ATTLIST default-interceptor-ref    name CDATA #REQUIRED><!ELEMENT default-action-ref (#PCDATA)><!ATTLIST default-action-ref    name CDATA #REQUIRED><!ELEMENT default-class-ref (#PCDATA)><!ATTLIST default-class-ref    class CDATA #REQUIRED><!ELEMENT global-results (result+)><!ELEMENT global-exception-mappings (exception-mapping+)><!ELEMENT action (param|result|interceptor-ref|exception-mapping)*><!ATTLIST action    name CDATA #REQUIRED    class CDATA #IMPLIED    method CDATA #IMPLIED    converter CDATA #IMPLIED><!ELEMENT param (#PCDATA)><!ATTLIST param    name CDATA #REQUIRED><!ELEMENT result (#PCDATA|param)*><!ATTLIST result    name CDATA #IMPLIED    type CDATA #IMPLIED><!ELEMENT exception-mapping (#PCDATA|param)*><!ATTLIST exception-mapping    name CDATA #IMPLIED    exception CDATA #REQUIRED    result CDATA #REQUIRED><!ELEMENT include (#PCDATA)><!ATTLIST include    file CDATA #REQUIRED><!ELEMENT bean (#PCDATA)><!ATTLIST bean    type CDATA #IMPLIED    name CDATA #IMPLIED    class CDATA #REQUIRED    scope CDATA #IMPLIED    static CDATA #IMPLIED    optional CDATA #IMPLIED><!ELEMENT constant (#PCDATA)><!ATTLIST constant    name CDATA #REQUIRED    value CDATA #REQUIRED    ><!-- END SNIPPET: strutsDtd -->

热点排行