// Rendered by UMod Pretty Printer at 2024-03-03_16h30m19
// See also the UMod user documentation online.

MODEL DTM =
  EXT NamespaceName FROM eu.bandm.tools.util.xml.NamespaceName
  EXT Modifier FROM eu.bandm.tools.ops.EBNFModifier
  EXT Location FROM eu.bandm.tools.location.Location

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

END MODEL // DTM