Module Xquery_type_ast


module Xquery_type_ast: sig .. end


type stype_specifier = {
   pstype_specifier_desc : stype_specifier_desc;
   pstype_specifier_loc : Finfo.finfo;
}
type stype_specifier_desc =
| STypeRef of Xquery_common_ast.tname
| SAnonymous of stype_derivation

type stype_derivation =
| SRestriction of stype_specifier
| SList of stype_specifier
| SUnion of stype_specifier list

type deriv =
| TRestriction of Xquery_common_ast.tname
| TExtension of Xquery_common_ast.tname

type xtype = {
   pxtype_desc : xtype_desc;
   pxtype_loc : Finfo.finfo;
}
type xtype_desc =
| TAtomicRef of Xquery_common_ast.tname
| TAttributeRef of Xquery_common_ast.aname
| TAttributeLocal of Xquery_common_ast.aname * stype_specifier
| TElementRef of Xquery_common_ast.ename
| TElementLocal of Xquery_common_ast.ename * Xquery_common_ast.nillable
* xtype_specifier
| TDocument of xtype
| TText
| TProcessingInstruction
| TComment
| TGroupRef of Xquery_common_ast.gname
| TAttrGroupRef of Xquery_common_ast.gname
| TBound of xtype * Occurrence.occurs * Occurrence.occurs
| TSequence of xtype * xtype
| TEmpty
| TChoice of xtype * xtype
| TNone
| TInterleave of xtype * xtype

type xtype_specifier =
| TSpecSimple of stype_specifier
| TSpecComplex of ctype_specifier

type ctype_specifier = {
   pctype_specifier_desc : ctype_specifier_desc;
   pctype_specifier_loc : Finfo.finfo;
}
type ctype_specifier_desc =
| TTypeRef of Xquery_common_ast.tname
| TAnonymous of ctype_derivation
type ctype_derivation = deriv option * xtype option *
Xquery_common_ast.mixed * xtype

type xtype_derivation =
| TComplexDerivation of ctype_derivation
| TSimpleDerivation of stype_derivation

type substitutes_for =
| TSubstitutesFor of Xquery_common_ast.ename
| TNonSubstitutesFor
type xelem_derivation = substitutes_for * Xquery_common_ast.nillable *
xtype_specifier

type xtype_declaration = {
   pxtype_declaration_desc : xtype_declaration_desc;
   pxtype_declaration_loc : Finfo.finfo;
}
type xtype_declaration_desc =
| TAttributeDecl of Xquery_common_ast.aname * stype_specifier
| TElementDecl of Xquery_common_ast.ename * xelem_derivation
| TTypeDecl of Xquery_common_ast.tname * xtype_derivation
| TGroupDecl of Xquery_common_ast.gname * xtype
| TAttrGroupDecl of Xquery_common_ast.gname * xtype

type xschema = {
   xschema_imported_schemas : xschema list;
   xschema_namespace_declarations : Xquery_common_ast.namespace_declaration list;
   xschema_type_declarations : xtype_declaration list;
}