// Rendered by UMod Pretty Printer at 2022-06-30_15h10m51
// See also the UMod user documentation online.

MODEL DTM =
  EXT NamespaceName FROM eu.bandm.tools.util.NamespaceName
  EXT Modifier FROM eu.bandm.tools.util.EBNFModifier
  EXT Location FROM eu.bandm.tools.message.Location

  TOPLEVEL CLASS
  Dtd
        elems       NamespaceName->Element
        instructions        string->SEQ ProcessingInstruction
  Named ABSTRACT
        location    OPT Location
        name        NamespaceName
  | Attribute ALGEBRAIC
        type        AttributeType
        def         AttributeDefault
  | Element
        attrs       NamespaceName->Attribute
        content     Content
  AttributeDefault ABSTRACT ALGEBRAIC
  | Required ALGEBRAIC
  | Implied ALGEBRAIC
  | AttributeValue ALGEBRAIC
        fixed       bool
        value       string
  Content ABSTRACT ALGEBRAIC
  | Any ALGEBRAIC
  | Mixed ALGEBRAIC
        elems       SET ElementRef
  | CP ABSTRACT ALGEBRAIC
        modifier    Modifier
  | | Choice ALGEBRAIC
        alts        SEQ CP
  | | Singleton ALGEBRAIC
        ref         ElementRef
  | | Sequence ALGEBRAIC
        elems       SEQ CP
  | Empty ALGEBRAIC
  ProcessingInstruction
        target      string
        body        string
  AttributeType ABSTRACT ALGEBRAIC
  | IdRef ALGEBRAIC
  | Notation ALGEBRAIC
  | Id ALGEBRAIC
  | IdRefs ALGEBRAIC
  | Entities ALGEBRAIC
  | Entity ALGEBRAIC
  | NMTokens ALGEBRAIC
  | NMToken ALGEBRAIC
  | CData ALGEBRAIC
  | Enumerated ALGEBRAIC
        values      SET string
  ElementRef ALGEBRAIC
        target      Element

END MODEL // DTM