HtmlTokenType.java revision d78e82dfc7da9c1e4ad8e4199bc375089a799c85
1// Copyright (c) 2011, Mike Samuel
2// All rights reserved.
3//
4// Redistribution and use in source and binary forms, with or without
5// modification, are permitted provided that the following conditions
6// are met:
7//
8// Redistributions of source code must retain the above copyright
9// notice, this list of conditions and the following disclaimer.
10// Redistributions in binary form must reproduce the above copyright
11// notice, this list of conditions and the following disclaimer in the
12// documentation and/or other materials provided with the distribution.
13// Neither the name of the OWASP nor the names of its contributors may
14// be used to endorse or promote products derived from this software
15// without specific prior written permission.
16// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20// COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27// POSSIBILITY OF SUCH DAMAGE.
28
29package org.owasp.html;
30
31/**
32 * Types of HTML tokens.
33 *
34 * @author Mike Samuel <mikesamuel@gmail.com>
35 */
36enum HtmlTokenType {
37  /**
38   * An HTML or XML attribute name consisting of characters other than
39   * whitespace, =, or specials.
40   */
41  ATTRNAME,
42  /** An HTML value, possibly a quoted string. */
43  ATTRVALUE,
44  /**
45   * An HTML bogus comment, XNL Prologue, or XML processing instruction like
46   * <tt>&lt;? content &gt;</tt>.
47   */
48  QMARKMETA,
49  /** An HTML or XML style comment, <tt>&lt;!-- for example --></tt>. */
50  COMMENT,
51  /**
52   * A directive such as a DOCTYPE declaration.
53   */
54  DIRECTIVE,
55  /** Unescaped tag, for instance, inside a script, or {@code xmp} tag. */
56  UNESCAPED,
57  /**
58   * A quoted string.  Should not show up in well formed HTML, but may where
59   * there is an attribute value without a corresponding name.
60   */
61  QSTRING,
62  /**
63   * The beginning of a tag -- not to be confused with a start tag.
64   * Valid tag beginnings include <tt>&lt;a</tt> and <tt>&lt;/a</tt>.  The
65   * rest of the tag is a series of attribute names, values, and the tag end.
66   */
67  TAGBEGIN,
68  /** The end of a tag.  Either <tt>&gt;</tt> or <tt>/&gt;</tt>. */
69  TAGEND,
70  /** A block of text, either inside a tag, or as element content. */
71  TEXT,
72  /** Ignorable whitespace nodes. */
73  IGNORABLE,
74  /** A server side script block a la php or jsp. */
75  SERVERCODE,
76  ;
77}
78