{- |
We provide a type class for tag and attribute names.
Instances can be names that preserve case,
names with lowercase letters as canonical representation.
-}moduleText.XML.Basic.Namewhere-- * types and classesclassOrdname=>CnamewherefromString::String->nametoString::name->String{- |
We need to distinguish between tag names and attribute names,
because DOCTYPE as tag name must be written upper case,
whereas as attribute name it may be written either way.
-}classOrdident=>TagidentwheretagFromString::String->identtagToString::ident->StringclassOrdident=>AttributeidentwhereattributeFromString::String->identattributeToString::ident->String-- * convenience functionsmatch::(Cname)=>String->name->Boolmatchproto=(fromStringproto==)matchAny::(Cname)=>[String]->name->BoolmatchAnyproto=flipelem(mapfromStringproto)