File:  [Public] / Amaya / amaya / Template.S
Revision 1.26: download - view: text, annotated - select for diffs
Fri Jun 22 14:17:09 2007 UTC (17 years ago) by vatton
Branches: MAIN
CVS tags: HEAD, Amaya-9-55-1, Amaya-9-55
Make a distinction between strings generated by the template and strings
inserted by the user.
Irene

      { Structure Schema for XTiger Templates
        Francesc Campoy Flores & I. Vatton    January 2007 }

	
STRUCTURE Template;

DEFPRES TemplateP;

ATTR
  { generic attributes for internal use }
  Unknown_attribute = TEXT;	{ to store an unknown attribute }

CONST

  C_CR = '\12';

STRUCT

  Template = CASE OF
      head;
      repeat;
      option;
      useEl;
      useSimple;
      bag;
      attribute;
    END;

  head ( ATTR version = TEXT; templateVersion = TEXT ) = 
    LIST OF ( Declaration = CASE OF
      component;
      union;
      import;
    END
   );

  component ( ATTR name = TEXT ) = ANY - ( head, union, import );
  union ( ATTR name; includeAt = TEXT; exclude = TEXT ) = CONSTANT C_CR; {It is always empty}
  import ( ATTR src = TEXT ) = CONSTANT C_CR; {It is always empty}

  repeat ( ATTR title = TEXT; minOccurs = TEXT; maxOccurs = TEXT; currentOccurs = TEXT ) =
  	LIST OF ( Repetition =
		  CASE OF
		    useEl;
        useSimple;
	    	option;
		    repeat;
		    bag;
		    END);


  option ( ATTR title )
  	= ANY - ( head, union, import, component );
  
  useEl ( ATTR title; types = TEXT; currentType = TEXT;  prompt = Yes_ )
     = ANY - ( head, union, import, component );

  useSimple ( ATTR title; types; prompt)
     = ANY - ( head, union, import, component );

  bag ( ATTR title; types ) 
     =  LIST OF (ANY) - ( head, union, import, component );

  attribute ( ATTR 
    ref_name = TEXT; 
    type = integerVal, decimal, string, listVal; 
    useAt = TEXT; 
    defaultAt = TEXT; 
    fixed = TEXT; 
    values = TEXT;
    ) = CONSTANT C_CR; {It is always empty}

EXCEPT
  useEl:              NoReplicate, NoBreakByReturn;
  useSimple:          NoReplicate, NoBreakByReturn;
  repeat:             NoReplicate, NoBreakByReturn, NoCreate;
  option:             NoReplicate, NoBreakByReturn, NoCreate;
  bag:                NoReplicate, NoBreakByReturn, NoCreate, ParagraphBreak;
  {Hiding unkown and language attributes}
	Unknown_attribute:  Invisible;
	Language:           Invisible;
  types :             DuplicateAttr;
  currentType:        Invisible;
  title:              GiveName;
  ref_name:		        GiveName;
  name:			          GiveName;
  prompt:             Invisible;
	
END

Webmaster