    -- ------------------------------------------------------------

    {- |
       Module     : Text.XML.HXT.DOM.XmlKeywords
       Copyright  : Copyright (C) 2005 Uwe Schmidt
       License    : MIT

       Maintainer : Uwe Schmidt (uwe@fh-wedel.de)
       Stability  : experimental
       Portability: portable

       Constants for XML keywords, for special attribute names
       and special attribute values

    -}

    -- ------------------------------------------------------------

    module Text.XML.HXT.DOM.XmlKeywords
    where

    -- ------------------------------------------------------------
    --
    -- string constants for representing DTD keywords and attributes

    t_xml,				-- tag names
     t_root		:: String

    a_accept_mimetypes,
     a_add_default_dtd,
     a_canonicalize,
     a_default,			-- attribute names
     a_check_namespaces,
     a_contentLength,
     a_collect_errors,
     a_column,
     a_default_baseuri,
     a_do_not_canonicalize,
     a_do_not_check_namespaces,
     a_do_not_issue_errors,
     a_do_not_issue_warnings,
     a_do_not_preserve_comment,
     a_do_not_remove_whitespace,
     a_do_not_use_curl,
     a_do_not_validate,
     a_encoding,
     a_error,
     a_error_log,
     a_help,
     a_if_modified_since,
     a_ignore_encoding_errors,
     a_ignore_none_xml_contents,
     a_indent,
     a_issue_errors,
     a_issue_warnings,
     a_kind,
     a_line,
     a_mime_types,
     a_module,
     a_modifier,
     a_name,
     a_no_empty_elements,
     a_no_empty_elem_for,
     a_no_redirect,
     a_no_xml_pi,
     a_options_curl,
     a_output_encoding,
     a_output_file,
     a_output_xml,
     a_output_html,
     a_output_xhtml,
     a_parse_by_mimetype,
     a_parse_html,
     a_parse_xml,
     a_peref,
     a_preserve_comment,
     a_propagate_errors,
     a_proxy,
     a_remove_whitespace,
     a_redirect,
     a_show_haskell,
     a_show_tree,
     a_source,
     a_status,
     a_standalone,
     a_strict_input,
     a_tagsoup,
     a_text_mode,
     a_trace,
     a_type,
     a_use_curl,
     a_url,
     a_validate,
     a_value,
     a_verbose,
     a_version,
     a_xml,
     a_xmlns	:: String

    v_0,				-- attribute values
     v_1,
     v_2,
     v_yes,
     v_no,
     v_any,
     v_children,
     v_choice,
     v_empty,
     v_mixed,
     v_seq,
     v_null,
     v_option,
     v_pcdata,
     v_star,
     v_plus		:: String

    k_any,				-- DTD keywords
     k_cdata,
     k_empty,
     k_entity,
     k_entities,
     k_id,
     k_idref,
     k_idrefs,
     k_include,
     k_ignore,
     k_nmtoken,
     k_nmtokens,
     k_peref,
     k_public,
     k_system,
     k_enumeration,
     k_fixed,
     k_implied,
     k_ndata,
     k_notation,
     k_pcdata,
     k_required,
     k_default	:: String

    -- ------------------------------------------------------------

    t_xml		= "xml"
    t_root		= "/"		-- name of root node tag

    a_accept_mimetypes		= "accept-mimetypes"
    a_add_default_dtd               = "add-default-dtd"
    a_canonicalize			= "canonicalize"
    a_check_namespaces		= "check-namespaces"
    a_collect_errors		= "collect-errors"
    a_column			= "column"
    a_contentLength			= "Content-Length"
    a_default			= "default"
    a_default_baseuri		= "default-base-URI"
    a_do_not_canonicalize		= "do-not-canonicalize"
    a_do_not_check_namespaces	= "do-not-check-namespaces"
    a_do_not_issue_errors		= "do-not-issue-errors"
    a_do_not_issue_warnings		= "do-not-issue-warnings"
    a_do_not_preserve_comment	= "do-not-preserve-comment"
    a_do_not_remove_whitespace	= "do-not-remove-whitespace"
    a_do_not_use_curl		= "do-not-use-curl"
    a_do_not_validate		= "do-not-validate"
    a_encoding			= "encoding"
    a_error				= "error"
    a_error_log			= "errorLog"
    a_help				= "help"
    a_if_modified_since		= "if-modified-since"
    a_ignore_encoding_errors	= "ignore-encoding-errors"
    a_ignore_none_xml_contents	= "ignore-none-xml-contents"
    a_indent			= "indent"
    a_issue_warnings		= "issue-warnings"
    a_issue_errors			= "issue-errors"
    a_kind				= "kind"
    a_line				= "line"
    a_mime_types			= "mimetypes"
    a_module			= "module"
    a_modifier			= "modifier"
    a_name				= "name"
    a_no_empty_elements		= "no-empty-elements"
    a_no_empty_elem_for             = "no-empty-elem-for"
    a_no_redirect	 		= "no-redirect"
    a_no_xml_pi                     = "no-xml-pi"
    a_options_curl			= "options-curl"
    a_output_file			= "output-file"
    a_output_encoding		= "output-encoding"
    a_output_html			= "output-html"
    a_output_xhtml			= "output-xhtml"
    a_output_xml			= "output-xml"
    a_parse_by_mimetype		= "parse-by-mimetype"
    a_parse_html			= "parse-html"
    a_parse_xml			= "parse-xml"
    a_peref				= k_peref
    a_preserve_comment 		= "preserve-comment"
    a_propagate_errors		= "propagate-errors"
    a_proxy				= "proxy"
    a_redirect	 		= "redirect"
    a_remove_whitespace 		= "remove-whitespace"
    a_show_haskell			= "show-haskell"
    a_show_tree			= "show-tree"
    a_source			= "source"
    a_standalone			= "standalone"
    a_status			= "status"
    a_strict_input			= "strict-input"
    a_tagsoup			= "tagsoup"
    a_text_mode			= "text-mode"
    a_trace				= "trace"
    a_type				= "type"
    a_url				= "url"
    a_use_curl			= "use-curl"
    a_validate			= "validate"
    a_value				= "value"
    a_verbose			= "verbose"
    a_version			= "version"
    a_xml				= "xml"
    a_xmlns				= "xmlns"

    v_yes		= "yes"
    v_no		= "no"
    v_0		= "0"
    v_1		= "1"
    v_2		= "2"

    v_any		= k_any
    v_children	= "children"
    v_choice	= "choice"
    v_empty		= k_empty
    v_pcdata	= k_pcdata
    v_mixed		= "mixed"
    v_seq		= "seq"

    v_null		= ""
    v_option	= "?"
    v_star		= "*"
    v_plus		= "+"

    k_any		= "ANY"
    k_cdata		= "CDATA"
    k_empty		= "EMPTY"
    k_entity	= "ENTITY"
    k_entities	= "ENTITIES"
    k_id		= "ID"
    k_idref		= "IDREF"
    k_idrefs	= "IDREFS"
    k_include	= "INCLUDE"
    k_ignore	= "IGNORE"
    k_nmtoken	= "NMTOKEN"
    k_nmtokens	= "NMTOKENS"
    k_peref		= "PERef"
    k_public	= "PUBLIC"
    k_system	= "SYSTEM"

    k_enumeration	= "#ENUMERATION"
    k_fixed		= "#FIXED"
    k_implied	= "#IMPLIED"
    k_ndata		= "NDATA"
    k_notation	= "NOTATION"
    k_pcdata	= "#PCDATA"
    k_required	= "#REQUIRED"
    k_default	= "#DEFAULT"

    dtdPrefix	:: String
    dtdPrefix	= "doctype-"

    -- ------------------------------------------------------------
    --

    -- attribute names for transfer protocol attributes
    -- used in XmlInput for describing header information
    -- of http and other requests

    transferPrefix
     , transferProtocol
     , transferMimeType
     , transferEncoding
     , transferURI
     , transferDefaultURI
     , transferStatus
     , transferMessage
     , transferVersion :: String

    transferPrefix		= "transfer-"

    transferProtocol	= transferPrefix ++ "Protocol"
    transferVersion		= transferPrefix ++ "Version"
    transferMimeType	= transferPrefix ++ "MimeType"
    transferEncoding	= transferPrefix ++ "Encoding"
    transferDefaultURI	= transferPrefix ++ "DefaultURI"
    transferStatus		= transferPrefix ++ "Status"
    transferMessage		= transferPrefix ++ "Message"
    transferURI		= transferPrefix ++ "URI"

    -- ------------------------------------------------------------
    --

    httpPrefix	:: String
    httpPrefix	= "http-"

    stringProtocol	:: String
    stringProtocol	= "string:"

    -- ------------------------------------------------------------
    --
    -- encoding names

    isoLatin1
      , iso8859_1, iso8859_2, iso8859_3, iso8859_4, iso8859_5
      , iso8859_6, iso8859_7, iso8859_8, iso8859_9, iso8859_10
      , iso8859_11, iso8859_13, iso8859_14, iso8859_15, iso8859_16
      , usAscii, ucs2, utf8, utf16, utf16be, utf16le, unicodeString	:: String

    isoLatin1	= iso8859_1
    iso8859_1	= "ISO-8859-1"
    iso8859_2	= "ISO-8859-2"
    iso8859_3	= "ISO-8859-3"
    iso8859_4	= "ISO-8859-4"
    iso8859_5	= "ISO-8859-5"
    iso8859_6	= "ISO-8859-6"
    iso8859_7	= "ISO-8859-7"
    iso8859_8	= "ISO-8859-8"
    iso8859_9	= "ISO-8859-9"
    iso8859_10	= "ISO-8859-10"
    iso8859_11	= "ISO-8859-11"
    iso8859_13	= "ISO-8859-13"
    iso8859_14	= "ISO-8859-14"
    iso8859_15	= "ISO-8859-15"
    iso8859_16	= "ISO-8859-16"
    usAscii		= "US-ASCII"
    ucs2		= "ISO-10646-UCS-2"
    utf8		= "UTF-8"
    utf16		= "UTF-16"
    utf16be		= "UTF-16BE"
    utf16le		= "UTF-16LE"
    unicodeString	= "UNICODE"

    -- ------------------------------------------------------------
    --
    -- known namespaces

    -- |
    -- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"

    xmlNamespace	:: String
    xmlNamespace	= "http://www.w3.org/XML/1998/namespace"

    -- |
    -- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"

    xmlnsNamespace	:: String
    xmlnsNamespace	= "http://www.w3.org/2000/xmlns/"

    -- | Relax NG namespace
    relaxNamespace	:: String
    relaxNamespace	= "http://relaxng.org/ns/structure/1.0"

    -- ------------------------------------------------------------
    -- option for Relax NG

    a_relax_schema,
     a_do_not_check_restrictions,
     a_check_restrictions,
     a_do_not_validate_externalRef,
     a_validate_externalRef,
     a_do_not_validate_include,
     a_validate_include,
     a_output_changes,
     a_do_not_collect_errors :: String

    a_relax_schema		      = "relax-schema"
    a_do_not_check_restrictions   = "do-not-check-restrictions"
    a_check_restrictions          = "check-restrictions"
    a_do_not_validate_externalRef = "do-not-validate-externalRef"
    a_validate_externalRef        = "validate-externalRef"
    a_do_not_validate_include     = "do-not-validate-include"
    a_validate_include            = "validate-include"
    a_output_changes              = "output-pattern-transformations"
    a_do_not_collect_errors       = "do-not-collect-errors"

    -- ------------------------------------------------------------