sig
  type sax_xml_decl =
      Datatypes.xs_untyped * Encoding.encoding option *
      Datatypes.xs_untyped option
  type sax_dtd_decl = Pxp_dtd.dtd option
  type sax_base_uri = Dm_atomic.atomicAnyURI option Pervasives.ref
  type sax_xml_attribute = Namespace_names.uqname * Datatypes.xs_untyped
  type sax_xml_attribute_forest = Streaming_types.sax_xml_attribute list
  type has_element_content = bool
  type document_desc =
      Streaming_types.sax_xml_decl option * Streaming_types.sax_dtd_decl *
      Streaming_types.sax_base_uri
  type element_desc =
      Namespace_names.uqname * Streaming_types.sax_xml_attribute_forest *
      Streaming_types.has_element_content
  type pi_desc = Namespace_names.ncname * Datatypes.xs_untyped
  type comment_desc = Datatypes.xs_untyped
  type text_desc = Datatypes.xs_untyped
  type atomic_desc = Dm_atomic.atomicValue
  type sax_event_desc =
      SAX_startDocument of Streaming_types.document_desc
    | SAX_endDocument
    | SAX_startElement of Streaming_types.element_desc
    | SAX_endElement
    | SAX_processingInstruction of Streaming_types.pi_desc
    | SAX_comment of Streaming_types.comment_desc
    | SAX_characters of Streaming_types.text_desc
    | SAX_attribute of Streaming_types.sax_xml_attribute
    | SAX_atomicValue of Streaming_types.atomic_desc
    | SAX_hole
  type sax_event = {
    se_desc : Streaming_types.sax_event_desc;
    se_loc : Finfo.finfo;
  }
  type xml_stream = Streaming_types.sax_event Cursor.cursor
  type resolved_sax_xml_attribute =
      Namespace_symbols.rattr_symbol * Datatypes.xs_untyped
  type resolved_sax_xml_attribute_forest =
      Streaming_types.resolved_sax_xml_attribute list
  type resolved_element_desc =
      Namespace_symbols.relem_symbol *
      Streaming_types.resolved_sax_xml_attribute_forest *
      Streaming_types.has_element_content * Streaming_types.sax_base_uri *
      Namespace_context.nsenv
  type resolved_sax_event_desc =
      RSAX_startDocument of Streaming_types.document_desc
    | RSAX_endDocument
    | RSAX_startElement of Streaming_types.resolved_element_desc
    | RSAX_endElement
    | RSAX_processingInstruction of Streaming_types.pi_desc
    | RSAX_comment of Streaming_types.comment_desc
    | RSAX_characters of Streaming_types.text_desc
    | RSAX_attribute of Streaming_types.resolved_sax_xml_attribute
    | RSAX_atomicValue of Streaming_types.atomic_desc
    | RSAX_hole
  type resolved_sax_event = {
    rse_desc : Streaming_types.resolved_sax_event_desc;
    rse_loc : Finfo.finfo;
  }
  type resolved_xml_stream = Streaming_types.resolved_sax_event Cursor.cursor
  type typed_sax_xml_attribute =
      Namespace_symbols.rattr_symbol * Datatypes.xs_untyped *
      Namespace_symbols.rtype_symbol * Dm_atomic.atomicValue list
  type typed_sax_xml_attribute_forest =
      Streaming_types.typed_sax_xml_attribute list
  type typed_element_desc =
      Namespace_symbols.relem_symbol *
      Streaming_types.typed_sax_xml_attribute_forest *
      Streaming_types.has_element_content * Streaming_types.sax_base_uri *
      Namespace_context.nsenv * Dm_types.nilled *
      Namespace_symbols.rtype_symbol * Dm_atomic.atomicValue list
  type typed_sax_event_desc =
      TSAX_startDocument of Streaming_types.document_desc
    | TSAX_endDocument
    | TSAX_startElement of Streaming_types.typed_element_desc
    | TSAX_endElement
    | TSAX_processingInstruction of Streaming_types.pi_desc
    | TSAX_comment of Streaming_types.comment_desc
    | TSAX_characters of Streaming_types.text_desc
    | TSAX_attribute of Streaming_types.typed_sax_xml_attribute
    | TSAX_atomicValue of Streaming_types.atomic_desc
    | TSAX_hole
    | TSAX_startEncl
    | TSAX_endEncl
  type typed_annotated_sax_event = {
    tse_desc : Streaming_types.typed_sax_event_desc;
    tse_annot : Sax_annot.sax_annot;
    tse_loc : Finfo.finfo;
  }
  type typed_xml_stream =
      Streaming_types.typed_annotated_sax_event Cursor.cursor
  type ordered_typed_sax_xml_attribute =
      Streaming_types.typed_sax_xml_attribute * Nodeid.prepostint_docorder
  type ordered_typed_sax_xml_attribute_forest =
      Streaming_types.ordered_typed_sax_xml_attribute list
  type ordered_typed_element_desc =
      Namespace_symbols.relem_symbol *
      Streaming_types.ordered_typed_sax_xml_attribute_forest *
      Streaming_types.has_element_content * Streaming_types.sax_base_uri *
      Namespace_context.nsenv * Dm_types.nilled *
      Namespace_symbols.rtype_symbol * Dm_atomic.atomicValue list
  type ordered_typed_sax_event_desc =
      OTSAX_startDocument of Streaming_types.document_desc *
        Nodeid.preint_docorder
    | OTSAX_endDocument of Nodeid.postint_docorder
    | OTSAX_startElement of Streaming_types.ordered_typed_element_desc *
        Nodeid.preint_docorder
    | OTSAX_endElement of Nodeid.postint_docorder
    | OTSAX_processingInstruction of Streaming_types.pi_desc *
        Nodeid.prepostint_docorder
    | OTSAX_comment of Streaming_types.comment_desc *
        Nodeid.prepostint_docorder
    | OTSAX_characters of Streaming_types.text_desc *
        Nodeid.prepostint_docorder
    | OTSAX_attribute of Streaming_types.ordered_typed_sax_xml_attribute
    | OTSAX_atomicValue of Streaming_types.atomic_desc
    | OTSAX_hole
    | OTSAX_startEncl
    | OTSAX_endEncl
  type ordered_typed_annotated_sax_event = {
    otse_desc : Streaming_types.ordered_typed_sax_event_desc;
    otse_annot : Sax_annot.sax_annot;
    otse_loc : Finfo.finfo;
  }
  type ordered_typed_xml_stream =
      Streaming_types.ordered_typed_annotated_sax_event Cursor.cursor
end