<!--

    Screem tag tree doctype
    
    <!DOCTYPE ref PUBLIC "-//Screem/DTD Tag Tree 1.0" "http://www.screem.org/dtd/screem-tagtree.dtd">

-->


<!ENTITY % URI "CDATA"   -- URI type -->

<!ELEMENT refs ref -- Root Element, wraps all <ref> -->

<!ELEMENT ref group -- Main Element, there may be multiple <ref>s with different xml:lang values -->
<!ATTLIST ref

	name    CDATA       #REQUIRED   -- name of the reference --
	description CDATA   #IMPLIED    -- description of the reference --
	type		CDATA	#IMPLIED	-- mime type for auto completion --
>


<!ELEMENT group (description|group|entry|function) -- Contains either other groups, or nodes -->
<!ATTLIST group

	name	CDATA	    #REQUIRED   -- the text to show in the tree --
	description CDATA   #IMPLIED    -- description of the reference --
>

<!ELEMENT entry (insert|description|property*) --  normal resource entry in the tag tree -->
<!ATTLIST entry

	name	CDATA	    #REQUIRED   -- the text to show in the tree --
>

<!ELEMENT function (insert|description|param*) -- function resource entry in the tag tree -->
<!ATTLIST function

	name	CDATA	    #REQUIRED   -- the text to show in the tree --
>


<!ELEMENT insert (#PCDATA)      -- data to insert on activation if the element contains
				any text that will override the open attribute -->
<!ATTLIST insert
	open     CDATA      #IMPLIED    -- opening tag text, also use if you
	                                   just want to insert a single string --

	close    CDATA      #IMPLIED    -- closing tag text, cursor will be inserted
	                                   between the open text and this --

	href     %URI;      #IMPLIED    -- uri to a file containing the text to insert
	                                   relative paths will be taken from the screem
                                           resources directory --
>

<!ELEMENT description (#PCDATA)    -- description text about the tree entry / function -->

<!ELEMENT (property|param) (#PCDATA)  -- parameter for the function -->
<!ATTLIST (property|param)
	name	CDATA	#REQUIRED	-- the name of the parameter --
	required	(0|1)		#IMPLIED	-- is the parameter optional --
	vallist	(0|1)		#REQUIRED	-- ? --
	default	CDATA	#IMPLIED	-- the default value for the parameter --
	type		CDATA	#IMPLIED	-- type of the parameter --	
	optional (0|1)	#IMPLIED	-- is the parameter optional or not --
>
