#
# AFL dictionary for XML
# ----------------------
#
# Several basic syntax elements and attributes, modeled on libxml2.
#
# Created by Michal Zalewski <lcamtuf@google.com>
#

attr_encoding=" encoding=\"1\""
attr_generic=" a=\"1\""
attr_href=" href=\"1\""
attr_standalone=" standalone=\"no\""
attr_version=" version=\"1\""
attr_xml_base=" xml:base=\"1\""
attr_xml_id=" xml:id=\"1\""
attr_xml_lang=" xml:lang=\"1\""
attr_xml_space=" xml:space=\"1\""
attr_xmlns=" xmlns=\"1\""

entity_builtin="&lt;"
entity_decimal="&#1;"
entity_external="&a;"
entity_hex="&#x1;"

# keywords
"ANY"
"ATTLIST"
"CDATA"
"DOCTYPE"
"ELEMENT"
"EMPTY"
"ENTITIES"
"ENTITY"
"FIXED"
"ID"
"IDREF"
"IDREFS"
"IGNORE"
"IMPLIED"
"INCLUDE"
"NDATA"
"NMTOKEN"
"NMTOKENS"
"NOTATION"
"PCDATA"
"PUBLIC"
"REQUIRED"
"SYSTEM"

# Various tag parts
"<"
">"
"/>"
"</"
"<?"
"?>"
"<!"
"!>"
"[]"
"]]"
"<![CDATA["
"<![CDATA[]]>"
"\"\""
"''"
"=\"\""
"=''"

# DTD
"<!ATTLIST"
"<!DOCTYPE"
"<!ELEMENT"
"<!ENTITY"
"<![IGNORE["
"<![INCLUDE["
"<!NOTATION"
"#CDATA"
"#FIXED"
"#IMPLIED"
"#PCDATA"
"#REQUIRED"

# Encodings
"ISO-8859-1"
"US-ASCII"
"UTF-8"
"UTF-16"
"UTF-16BE"
"UTF-16LE"

# Namespaces and schemas
"xmlns"
"xmlns:"
"xmlns:xhtml=\"http://www.w3.org/1999/xhtml\""
"xmlns:xml=\"http://www.w3.org/XML/1998/namespace\""
"xmlns:xmlns=\"http://www.w3.org/2000/xmlns\""

string_col_fallback=":fallback"
string_col_generic=":a"
string_col_include=":include"
string_dashes="--"
string_parentheses="()"
string_percent="%a"
string_schema=":schema"
string_ucs4="UCS-4"
tag_close="</a>"
tag_open="<a>"
tag_open_close="<a />"


"<?xml?>"
"http://docboo"
"http://www.w"
"he30"
"he2"
"IET"
"FDF-10"
"aDUCS-4OPveb:"
"a>"
"UT"
"xMl"
"/usr/share/sg"
"ha07"
"http://www.oa"
"cle"
