[all pages:] introduction message / location / muli format dtd xantlr tdom ops paisley metajava umod option auxiliaries d2d downloads & licenses people bibliography APPENDICES:: white papers white papers 2 white papers 3 project struct proposal cygwin tips SOURCE:option.dtd SOURCE:dtd.umod DOC:deliverables.ddf DOC-DE:deliverables.ddf DOC:mtdocpage.ddf DOC-DE:mtdocpage.ddf SOURCE:basic.dd2 SOURCE:xslt.dd2
|
|
|
| SOURCE:option.dtd | bandm meta_tools | DOC:deliverables.ddf |
APPENDIX: The umod Model Definiton File for the Structure of our DTD (Document Type Definition) Model
The following text shows the model definition following the umod syntaxof our implementation of the "document type definition" object, as explained in dtd:
MODEL DTD =
DOC
Model for w3c xml dtds, written in umod, cf. the
<a href='{@docRoot}/../usage/dtd.html'>user documentation</a>.
$$
EXT simpleMessage = eu.bandm.tools.message.SimpleMessage
EXT meassageReceiver = eu.bandm.tools.message.MessageReceiver
EXT xmlDocumentIdentifier = eu.bandm.tools.message.XMLDocumentIdentifier
EXT location = eu.bandm.tools.message.Location
<eu.bandm.tools.message.XMLDocumentIdentifier>
VISITOR 0 Visitor MULTIPHASE ;
VISITOR 0 SinglePathVisitor ;
VISITOR 0 Dump IS PRINTER ;
VISITOR 0 CoRewriter IS COREWRITER ;
VISITOR 0 Rewriter IS REWRITER ;
TOPLEVEL CLASS
Dtd
locations SEQ OPT location
documentId OPT xmlDocumentIdentifier ! C 1/0 ;
textDecl OPT TextDecl ! V 0/0 ;
markup SEQ MarkupDecl ! V 0/1 ;
entityUsage string <-> string
FORMAT "'<!-- XML 1.1 DTD '|(documentId?);' -->'"
"/(textDecl?)/markup[/]"
<<JAVA
public static Dtd parse(java.io.Reader in,
eu.bandm.tools.message.XMLDocumentIdentifier id,
java.io.File base,
boolean lateError,
eu.bandm.tools.message.MessageReceiver
<? super eu.bandm.tools.message.SimpleMessage
<XMLDocumentIdentifier>> msg){
final Dtd result = TunedDTDParser.parse(in, id, base, lateError, msg);
return result ;
}
$$
TOPLEVEL CLASS
MarkupDecl
| Attlist
| Comment
| Element
| Entity
| Notation
| PI
| TextDecl
EntityValue
EntityContext
AttDef
AttType
| AttTypeConstant
| AttTypeAbbrev
| Enumerated
//| NotationAtt FIXME MISSING
DefaultDecl
| DefaultDeclConstant
| AttValue
ContentModel
| ContentModelConstant
| Mixed
| CP ABSTRACT
| | Singleton
| | Seq
| | Choice
| | Abbrev
NmToken
EXTEND CLASS
MarkupDecl
location OPT location ! C 99/0 ;
locations SEQ OPT location
| Attlist
element string ! C 0/0 99/1 ;
FORMAT "'<!ATTLIST 'element/atts[/]'>'"
atts SEQ AttDef ! V 0/0 ;
| Comment
text string ! C 0/0 99/1 ;
FORMAT "'<!--'$text text'-->'"
| Element
name string ! C 0/0 99/1 ;
content ContentModel ! C 0/1 99/2 V 0/0 ;
FORMAT "('<!ELEMENT' name )|16>("
"(($is Abbrev content)'('content')'"
"?($is Singleton content)'('content')'"
"?content))|' >'"
| Entity
parameter bool ! C 0/0 99/1;
name string ! C 0/1 99/2;
value EntityValue ! C 0/2 99/3 V 0/0 ;
FORMAT "('<!ENTITY'|' '|$switch parameter{true:'%'} 2>name); ;2>value;'>'"
| Notation
name string ! C 0/0 99/1 ;
id xmlDocumentIdentifier ! C 0/1 99/2 ;
FORMAT "'<!NOTATION' name 2>id"
| PI
target string ! C 0/0 99/1 ;
text string ! C 0/1 99/2 ;
FORMAT "('<?'target; ;2>($text text)'?>')?('<?'target'?>')"
| TextDecl
version string ! C 0/0 99/1 ;
encoding OPT string ! C 0/1 99/2 ;
FORMAT "'<?xml'; ;2>(('version'| |'='| |'\"'version'\"'); ;"
"('encoding'| |'='| |'\"'encoding'\"')?);'?>'"
EntityValue
id OPT xmlDocumentIdentifier ! C 0/0 ;
definition string ! C 0/1 1/0 2/0 ;
replacement OPT string ! C 0/2 1/1 ;
FORMAT "id?$java 'eu.bandm.tools.format.Format.quoteDTDstyle'($text definition)"
AttDef
location OPT location ! C 99/0 ;
locations SEQ OPT location
name string ! C 0/0 99/1 ;
type AttType ! C 0/1 99/2 V 0/0 ;
value DefaultDecl ! C 0/2 99/3 V 0/1 ;
FORMAT "$tabular{10>name,30>type,50>value}"
AttType ABSTRACT ALGEBRAIC
JAVA public static final AttType CDATA = new AttTypeConstant("CDATA") ; $$
JAVA public static final AttType ID = new AttTypeConstant("ID") ; $$
JAVA public static final AttType IDREF = new AttTypeConstant("IDREF") ; $$
JAVA public static final AttType IDREFS = new AttTypeConstant("IDREFS") ; $$
JAVA public static final AttType ENTITY = new AttTypeConstant("ENTITY") ; $$
JAVA public static final AttType ENTITIES = new AttTypeConstant("ENTITIES") ; $$
JAVA public static final AttType NMTOKEN = new AttTypeConstant("NMTOKEN") ; $$
JAVA public static final AttType NMTOKENS = new AttTypeConstant("NMTOKENS") ; $$
| AttTypeConstant
label string ! C 0/0 ;
FORMAT "label"
| AttTypeAbbrev
label string ! C 0/0 ;
FORMAT "'&'label';'"
| Enumerated
tokens SEQ string ! C 0/0 ;
FORMAT "tokens['('|' | ';')']"
//| NotationAtt
// names SEQ string
DefaultDecl
JAVA
public static final DefaultDecl REQUIRED = new DefaultDeclConstant("REQUIRED") ;
public static final DefaultDecl IMPLIED = new DefaultDeclConstant("IMPLIED") ; $$
| DefaultDeclConstant
label string ! C 0/0 ;
FORMAT "'#'label"
| AttValue
fixed bool ! C 0/0 ;
value string ! C 0/1 ;
FORMAT
// ALT PRE 20170428;
// "$switch fixed{true:'#FIXED '}$java'eu.bandm.tools.format.Format.quoteDTDstyle'(value)"
// ATTENTION neu 20170428: "escapeToJava" is now under "append", not under "block"
"$switch fixed{true:'#FIXED '}($java'eu.bandm.tools.format.Format.quoteDTDstyle'(value))"
ContentModel ALGEBRAIC
JAVA public static final ContentModel EMPTY = new Empty("EMPTY") ; $$
JAVA public static final ContentModel ANY = new Any("ANY") ; $$
| ContentModelConstant
label string ! C 0/0 ;
FORMAT "label"
| | Empty
FORMAT "'EMPTY'" // FIXME CHECK
| | Any
FORMAT "'ANY'" // FIXME CHECK
| Mixed
names SEQ string ! C 0/0 ;
FORMAT "names['(#PCDATA | '|' | ',' )*'/'(#PCDATA)']"
| CP // ABSTRACT
modifier int = "NONE" ! C 0/0 ; // DEFAULT JAVA NONE $$
JAVA public static final int NONE = 0 ; $$
JAVA public static final int OPTIONAL = 1 ; $$
JAVA public static final int STAR = 2 ; $$
JAVA public static final int PLUS = 3 ; $$
JAVA public static int combine(int modifier1, int modifier2) {
if(modifier1 == NONE)
return modifier2 ;
if(modifier2 == NONE)
return modifier1 ;
if(modifier1 == modifier2)
return modifier1 ;
return STAR ;
} $$
JAVA public CP modify(int modifier) { throw new AbstractMethodError() ; } $$
| | Singleton
name string ! C 0/1 1/0 ;
TOSTRING JAVA return "s~"+name ; $$
FORMAT "name$switch modifier{1:'?',2:'*',3:'+'}" // TEST IT FIXME
JAVA public CP modify(int modifier) {
return new Singleton(combine(this.modifier, modifier), name) ;
} $$
| | Seq
elems SEQ CP ! C 0/1 1/0 V 0/0 ;
JAVA public CP modify(int modifier) {
return new Seq(combine(this.modifier, modifier), elems) ;
} $$
FORMAT "elems['('|', ',')']$switch modifier{1:'?',2:'*',3:'+'}"
| | Choice
alts SEQ CP ! C 0/1 1/0 V 0/0 ;
JAVA public CP modify(int modifier) {
return new Choice(combine(this.modifier, modifier), alts) ;
} $$
FORMAT "alts['('|' | ',')']$switch modifier{1:'?',2:'*',3:'+'}"
| | Abbrev
name string ! C 0/1 1/0 ;
body CP ! C 0/2 1/1 V 0/0 ;
FORMAT "('(%'name';)'$switch $mode{1:'[[='body']]'}"
"$switch modifier{0:$throw,1:'?',2:'*',3:'+'})"
"?('%'name';'$switch $mode{1:'[[='body']]'})"
JAVA public CP modify(int modifier) {
return new Abbrev(combine(this.modifier, modifier),
name, body.modify(modifier)) ;
} $$
NmToken // FIXME REQUIRED !?!?
text string ! C 0/0 ;
FORMAT "text"
END MODEL
//eof
|
[all pages:] introduction message / location / muli format dtd xantlr tdom ops paisley metajava umod option auxiliaries d2d downloads & licenses people bibliography APPENDICES:: white papers white papers 2 white papers 3 project struct proposal cygwin tips SOURCE:option.dtd SOURCE:dtd.umod DOC:deliverables.ddf DOC-DE:deliverables.ddf DOC:mtdocpage.ddf DOC-DE:mtdocpage.ddf SOURCE:basic.dd2 SOURCE:xslt.dd2
|
|
|
| SOURCE:option.dtd | bandm meta_tools | DOC:deliverables.ddf |
made
2018-12-30_11h03 by
lepper on
linux-q699.site
produced with
eu.bandm.metatools.d2d
and
XSLT
FYI view
page d2d source text