      1 ﻿/*
      2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
      3 For licensing, see LICENSE.html or http://ckeditor.com/license
      4 */
      5
      6 /**
      7  * @fileOverview Defines the {@link CKEDITOR.dtd} object, which holds the DTD
      8  *		mapping for XHTML 1.0 Transitional. This file was automatically
      9  *		generated from the file: xhtml1-transitional.dtd.
     10  */
     11
     12 /**
     13  * Holds and object representation of the HTML DTD to be used by the editor in
     14  * its internal operations.
     15  *
     16  * Each element in the DTD is represented by a
     17  * property in this object. Each property contains the list of elements that
     18  * can be contained by the element. Text is represented by the "#" property.
     19  *
     20  * Several special grouping properties are also available. Their names start
     21  * with the "$" character.
     22  * @namespace
     23  * @example
     24  * // Check if "div" can be contained in a "p" element.
     25  * alert( !!CKEDITOR.dtd[ 'p' ][ 'div' ] );  "false"
     26  * @example
     27  * // Check if "p" can be contained in a "div" element.
     28  * alert( !!CKEDITOR.dtd[ 'div' ][ 'p' ] );  "true"
     29  * @example
     30  * // Check if "p" is a block element.
     31  * alert( !!CKEDITOR.dtd.$block[ 'p' ] );  "true"
     32  */
     33 CKEDITOR.dtd = (function()
     34 {
     35     var X = CKEDITOR.tools.extend,
     36
     37 		A = {isindex:1,fieldset:1},
     38 		B = {input:1,button:1,select:1,textarea:1,label:1},
     39 		C = X({a:1},B),
     40 		D = X({iframe:1},C),
     41 		E = {hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1},
     42 		F = {ins:1,del:1,script:1},
     43 		G = X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F),
     44 		H = X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G),
     45 		I = X({p:1},H),
     46 		J = X({iframe:1},H,B),
     47 		K = {img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1},
     48
     49 		L = X({a:1},J),
     50 		M = {tr:1},
     51 		N = {'#':1},
     52 		O = X({param:1},K),
     53 		P = X({form:1},A,D,E,I),
     54 		Q = {li:1};
     55
     56 	var block = {address:1,blockquote:1,center:1,dir:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,isindex:1,menu:1,noframes:1,ol:1,p:1,pre:1,table:1,ul:1};
     57
     58     return /** @lends CKEDITOR.dtd */ {
     59
     60 		// The "$" items have been added manually.
     61
     62 		/**
     63 		 * List of block elements, like "p" or "div".
     64 		 * @type Object
     65 		 * @example
     66 		 */
     67 		$block : block,
     68
     69 		$body : X({script:1}, block),
     70
     71 		$cdata : {script:1,style:1},
     72
     73 		/**
     74 		 * List of empty (self-closing) elements, like "br" or "img".
     75 		 * @type Object
     76 		 * @example
     77 		 */
     78 		$empty : {area:1,base:1,br:1,col:1,hr:1,img:1,input:1,link:1,meta:1,param:1},
     79
     80 		/**
     81 		 * List of list item elements, like "li" or "dd".
     82 		 * @type Object
     83 		 * @example
     84 		 */
     85 		$listItem : {dd:1,dt:1,li:1},
     86
     87 		/**
     88 		 * Elements that accept text nodes, but are not possible to edit into
     89 		 * the browser.
     90 		 * @type Object
     91 		 * @example
     92 		 */
     93 		$nonEditable : {applet:1,button:1,embed:1,iframe:1,map:1,object:1,option:1,script:1,textarea:1},
     94
     95 		/**
     96 		 * List of elements that can be ignored if empty, like "b" or "span".
     97 		 * @type Object
     98 		 * @example
     99 		 */
    100 		$removeEmpty : {abbr:1,acronym:1,address:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,s:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1},
    101
    102 		/**
    103 		 * List of elements that have tabindex set to zero by default.
    104 		 * @type Object
    105 		 * @example
    106 		 */
    107 		$tabIndex : {a:1,area:1,button:1,input:1,object:1,select:1,textarea:1},
    108
    109 		/**
    110 		 * List of elements used inside the "table" element, like "tbody" or "td".
    111 		 * @type Object
    112 		 * @example
    113 		 */
    114 		$tableContent : {caption:1,col:1,colgroup:1,tbody:1,td:1,tfoot:1,th:1,thead:1,tr:1},
    115
    116         col : {},
    117         tr : {td:1,th:1},
    118         img : {},
    119         colgroup : {col:1},
    120         noscript : P,
    121         td : P,
    122         br : {},
    123         th : P,
    124         center : P,
    125         kbd : L,
    126         button : X(I,E),
    127         basefont : {},
    128         h5 : L,
    129         h4 : L,
    130         samp : L,
    131         h6 : L,
    132         ol : Q,
    133         h1 : L,
    134         h3 : L,
    135         option : N,
    136         h2 : L,
    137         form : X(A,D,E,I),
    138         select : {optgroup:1,option:1},
    139         font : L,
    140         ins : P,
    141         menu : Q,
    142         abbr : L,
    143         label : L,
    144         table : {thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},
    145         code : L,
    146         script : N,
    147         tfoot : M,
    148         cite : L,
    149         li : P,
    150         input : {},
    151         iframe : P,
    152         strong : L,
    153         textarea : N,
    154         noframes : P,
    155         big : L,
    156         small : L,
    157         span : L,
    158         hr : {},
    159         dt : L,
    160         sub : L,
    161         optgroup : {option:1},
    162         param : {},
    163         bdo : L,
    164         'var' : L,
    165         div : P,
    166         object : O,
    167         sup : L,
    168         dd : P,
    169         strike : L,
    170         area : {},
    171         dir : Q,
    172         map : X({area:1,form:1,p:1},A,F,E),
    173         applet : O,
    174         dl : {dt:1,dd:1},
    175         del : P,
    176         isindex : {},
    177         fieldset : X({legend:1},K),
    178         thead : M,
    179         ul : Q,
    180         acronym : L,
    181         b : L,
    182         a : J,
    183         blockquote : P,
    184         caption : L,
    185         i : L,
    186         u : L,
    187         tbody : M,
    188         s : L,
    189         address : X(D,I),
    190         tt : L,
    191         legend : L,
    192         q : L,
    193         pre : X(G,C),
    194         p : L,
    195         em : L,
    196         dfn : L
    197     };
    198 })();
    199
    200 // PACKAGER_RENAME( CKEDITOR.dtd )
    201