001    /* 
002        Licensed to the Apache Software Foundation (ASF) under one
003        or more contributor license agreements.  See the NOTICE file
004        distributed with this work for additional information
005        regarding copyright ownership.  The ASF licenses this file
006        to you under the Apache License, Version 2.0 (the
007        "License"); you may not use this file except in compliance
008        with the License.  You may obtain a copy of the License at
009    
010           http://www.apache.org/licenses/LICENSE-2.0
011    
012        Unless required by applicable law or agreed to in writing,
013        software distributed under the License is distributed on an
014        "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015        KIND, either express or implied.  See the License for the
016        specific language governing permissions and limitations
017        under the License.  
018     */
019    
020    package org.apache.wiki.util;
021    
022    /**
023     *  Provides constants for the Extensible HyperText Markup Language (XHTML) 1.0.
024     *
025     * @since     2.10
026     */
027    public enum XHTML 
028    {
029        // XHTML element type names ...........................................
030    
031        a, abbr, acronym, address, applet, area,
032        b, base, basefont, bdo, big, blockquote, body, br, button,
033        caption, center, cite, code, col, colgroup,
034        dd, del, dfn, dir, div, dl, dt,
035        em,
036        fieldset, font, form, frame, frameset,
037        h1, h2, h3, h4, h5, h6, head, hr, html,
038        i, iframe, img, input, ins, isindex,
039        kbd,
040        label,
041        legend, li, link,
042        map, menu, meta,
043        noframes, noscript,
044        object, ol, optgroup, option,
045        p, param, pre,
046        q,
047        s, samp, script, select, small, span, strike, strong, style, sub, sup,
048        table, tbody, td, textarea, tfoot, th, thead, title, tr, tt,
049        u, ul,
050        var;
051    
052    
053        /** 
054         *  Returns the element type name (AKA generic identifier).
055         *  This is a convenience method that returns the same value 
056         *  as <tt>XHTML.&lt;GI&gt;>.name();</tt>.
057         */
058        public String getName()
059        {
060            return this.name();
061        }
062    
063        
064        // XML Public and Namespace identifiers for XHTML .........................
065    
066        /** XML Namespace URI for the Extensible HyperText Markup Language (XHTML). */
067        public static final String XMLNS_xhtml = "http://www.w3.org/1999/xhtml";
068    
069        /** A String containing the Formal Public Identifier (FPI) for the XHTML 1.0 Strict DTD. */
070        public static final String STRICT_DTD_PubId = "-//W3C//DTD XHTML 1.0 Strict//EN";
071        /** A String containing a system identifier for the XHTML 1.0 Strict DTD. */
072        public static String STRICT_DTD_SysId = "xhtml1-strict.dtd";
073    
074        /** A String containing the Formal Public Identifier (FPI) for the XHTML 1.0 Transitional DTD. */
075        public static final String TRANSITIONAL_DTD_PubId = "-//W3C//DTD XHTML 1.0 Transitional//EN";
076        /** A String containing a system identifier for the XHTML 1.0 Transitional DTD. */
077        public static String TRANSITIONAL_DTD_SysId = "xhtml1-transitional.dtd";
078    
079        /** A String containing the Formal Public Identifier (FPI) for the XHTML 1.0 Frameset DTD. */
080        public static final String FRAMESET_DTD_PubId = "-//W3C//DTD XHTML 1.0 Frameset//EN";
081        /** A String containing a system identifier for the XHTML 1.0 Frameset DTD. */
082        public static String FRAMESET_DTD_SysId = "xhtml1-frameset.dtd";
083    
084        // CSS strings ........................................................
085    
086        /** An identifier for the CSS stylesheet notation using its W3C home page URI. */
087        public static final String CSS_style  = "http://www.w3.org/Style/CSS/";
088    
089    
090        // XHTML common attribute names .......................................
091    
092        /** String containing the XHTML 'id' attribute name (i.e., 'id'). */
093        public static final String ATTR_id            = "id";
094    
095        /** String containing the XHTML 'class' attribute name (i.e., 'class'). */
096        public static final String ATTR_class         = "class";
097    
098        /** String containing the XHTML 'name' attribute name (i.e., 'name'). */
099        public static final String ATTR_name          = "name";
100    
101        /** String containing the XHTML 'type' attribute name (i.e., 'type'). */
102        public static final String ATTR_type          = "type";
103    
104        /** String containing the XHTML 'value' attribute name (i.e., 'value'). */
105        public static final String ATTR_value         = "value";
106    
107        /** String containing the XHTML 'href' attribute name (i.e., 'href'). */
108        public static final String ATTR_href          = "href";
109    
110        /** String containing the XHTML 'title' attribute name (i.e., 'title'). */
111        public static final String ATTR_title         = "title";
112    
113        /** String containing the XHTML 'width' attribute name (i.e., 'width'). */
114        public static final String ATTR_width         = "width";
115    
116        /** String containing the XHTML 'height' attribute name (i.e., 'height'). */
117        public static final String ATTR_height        = "height";
118    
119        /** String containing the XHTML 'border' attribute name (i.e., 'border'). */
120        public static final String ATTR_border        = "border";
121    
122        /** String containing the XHTML 'colspan' attribute name (i.e., 'colspan'). */
123        public static final String ATTR_colspan       = "colspan";
124    
125        /** String containing the XHTML 'src' attribute name (i.e., 'src'). */
126        public static final String ATTR_src           = "src";
127    
128        /** String containing the XHTML 'alt' attribute name (i.e., 'alt'). */
129        public static final String ATTR_alt           = "alt";
130    
131        // okay, maybe not so common
132    
133        /** String containing the XHTML 'bgcolor' attribute name (i.e., 'bgcolor'). */
134        public static final String ATTR_bgcolor       = "bgcolor";
135    
136        /** String containing the XHTML 'checked' attribute name (i.e., 'checked'). */
137        public static final String ATTR_checked       = "checked";
138        
139        /** String containing the XHTML 'cols' attribute name (i.e., 'cols'). */
140        public static final String ATTR_cols          = "cols";
141        
142        /** String containing the XHTML 'content' attribute name (i.e., 'content'). */
143        public static final String ATTR_content       = "content";
144    
145        /** String containing the XHTML 'http-equiv' attribute name (i.e., 'http-equiv'). */
146        public static final String ATTR_httpEquiv     = "http-equiv";
147    
148        /** String containing the XHTML 'scheme' attribute name (i.e., 'scheme'). */
149        public static final String ATTR_scheme        = "scheme";
150    
151        /** String containing the XHTML 'rel' attribute name (i.e., 'rel'). */
152        public static final String ATTR_rel           = "rel";
153    
154        /** String containing the XHTML 'rows' attribute name (i.e., 'rows'). */
155        public static final String ATTR_rows          = "rows";
156        
157        /** String containing the XHTML 'selected' attribute name (i.e., 'selected'). */
158        public static final String ATTR_selected      = "selected";
159        
160        /** String containing the XHTML 'size' attribute name (i.e., 'size'). */
161        public static final String ATTR_size          = "size";
162        
163        /** String containing the XHTML 'style' attribute name (i.e., 'style'). */
164        public static final String ATTR_style         = "style";
165    
166        /** String containing the XHTML 'align' attribute name (i.e., 'align'). */
167        public static final String ATTR_align         = "align";
168    
169        /** String containing the XHTML 'cellpadding' attribute name (i.e., 'cellpadding'). */
170        public static final String ATTR_cellpadding   = "cellpadding";
171        
172        /** String containing the XHTML 'cellspacing' attribute name (i.e., 'cellspacing'). */
173        public static final String ATTR_cellspacing   = "cellspacing";
174    
175        // XHTML character entities ...........................................
176    
177        /**
178         *  Returns a String containing the named character entity corresponding to
179         *  the character number <tt>num</tt> for the range 160-255. Throws an 
180         *  ArrayOutOfBoundsException if beyond the prescribed range.
181         */
182        public static String getNamedCharacterEntity( int num )
183        {
184            return CHARACTER_ENTITIES[num-160];
185        }
186    
187        /* Conversion table for the XHTML upper ASCII character entities (character numbers 160-255). */
188        private static final String[] CHARACTER_ENTITIES = {
189            "nbsp" /* 160 */,   "iexcl" /* 161 */,  "cent" /* 162 */,   "pound" /* 163 */,
190            "curren" /* 164 */, "yen" /* 165 */,    "brvbar" /* 166 */, "sect" /* 167 */,
191            "uml" /* 168 */,    "copy" /* 169 */,   "ordf" /* 170 */,   "laquo" /* 171 */,
192            "not" /* 172 */,    "shy" /* 173 */,    "reg" /* 174 */,    "macr" /* 175 */,
193            "deg" /* 176 */,    "plusmn" /* 177 */, "sup2" /* 178 */,   "sup3" /* 179 */,
194            "acute" /* 180 */,  "micro" /* 181 */,  "para" /* 182 */,   "middot" /* 183 */,
195            "cedil" /* 184 */,  "sup1" /* 185 */,   "ordm" /* 186 */,   "raquo" /* 187 */,
196            "frac14" /* 188 */, "frac12" /* 189 */, "frac34" /* 190 */, "iquest" /* 191 */,
197            "Agrave" /* 192 */, "Aacute" /* 193 */, "Acirc" /* 194 */,  "Atilde" /* 195 */,
198            "Auml" /* 196 */,   "Aring" /* 197 */,  "AElig" /* 198 */,  "Ccedil" /* 199 */,
199            "Egrave" /* 200 */, "Eacute" /* 201 */, "Ecirc" /* 202 */,  "Euml" /* 203 */,
200            "Igrave" /* 204 */, "Iacute" /* 205 */, "Icirc" /* 206 */,  "Iuml" /* 207 */,
201            "ETH" /* 208 */,    "Ntilde" /* 209 */, "Ograve" /* 210 */, "Oacute" /* 211 */,
202            "Ocirc" /* 212 */,  "Otilde" /* 213 */, "Ouml" /* 214 */,   "times" /* 215 */,
203            "Oslash" /* 216 */, "Ugrave" /* 217 */, "Uacute" /* 218 */, "Ucirc" /* 219 */,
204            "Uuml" /* 220 */,   "Yacute" /* 221 */, "THORN" /* 222 */,  "szlig" /* 223 */,
205            "agrave" /* 224 */, "aacute" /* 225 */, "acirc" /* 226 */,  "atilde" /* 227 */,
206            "auml" /* 228 */,   "aring" /* 229 */,  "aelig" /* 230 */,  "ccedil" /* 231 */,
207            "egrave" /* 232 */, "eacute" /* 233 */, "ecirc" /* 234 */,  "euml" /* 235 */,
208            "igrave" /* 236 */, "iacute" /* 237 */, "icirc" /* 238 */,  "iuml" /* 239 */,
209            "eth" /* 240 */,    "ntilde" /* 241 */, "ograve" /* 242 */, "oacute" /* 243 */,
210            "ocirc" /* 244 */,  "otilde" /* 245 */, "ouml" /* 246 */,   "divide" /* 247 */,
211            "oslash" /* 248 */, "ugrave" /* 249 */, "uacute" /* 250 */, "ucirc" /* 251 */,
212            "uuml" /* 252 */,   "yacute" /* 253 */, "thorn" /* 254 */,  "yuml" /* 255 */ };
213    
214    } // end org.apache.wiki.util.XHTML