<HTML
><HEAD
><TITLE
>schemasInternals</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Gnome XML Library Reference Manual"
HREF="book1.html"><LINK
REL="UP"
TITLE="Libxml Library Reference"
HREF="libxml-lib.html"><LINK
REL="PREVIOUS"
TITLE="xmlschemastypes"
HREF="libxml-xmlschemastypes.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
BGCOLOR="#000000"
CELLPADDING="1"
CELLSPACING="0"
><TR
><TH
COLSPAN="4"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="5"
>Gnome XML Library Reference Manual</FONT
></TH
></TR
><TR
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="left"
><A
HREF="libxml-xmlschemastypes.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; Previous Page</B
></FONT
></A
></TD
><TD
WIDTH="25%"
BGCOLOR="#0000C0"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="book1.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Home</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#00C000"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="libxml-lib.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
>&nbsp;</TD
></TR
></TABLE
></DIV
><H1
><A
NAME="LIBXML-SCHEMASINTERNALS">schemasInternals</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN31773"
></A
><H2
>Name</H2
>schemasInternals&nbsp;--&nbsp;</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN31776"><H2
>Synopsis</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;

enum        <A
HREF="libxml-schemasinternals.html#XMLSCHEMATYPETYPE"
>xmlSchemaTypeType</A
>;
enum        <A
HREF="libxml-schemasinternals.html#XMLSCHEMACONTENTTYPE"
>xmlSchemaContentType</A
>;
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAVAL"
>xmlSchemaVal</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAVALPTR"
>xmlSchemaValPtr</A
>;
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMATYPE"
>xmlSchemaType</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMATYPEPTR"
>xmlSchemaTypePtr</A
>;
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAFACET"
>xmlSchemaFacet</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAFACETPTR"
>xmlSchemaFacetPtr</A
>;
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAANNOT"
>xmlSchemaAnnot</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAANNOTPTR"
>xmlSchemaAnnotPtr</A
>;
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ANYATTR-SKIP-CAPS"
>XML_SCHEMAS_ANYATTR_SKIP</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ANYATTR-LAX-CAPS"
>XML_SCHEMAS_ANYATTR_LAX</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ANYATTR-STRICT-CAPS"
>XML_SCHEMAS_ANYATTR_STRICT</A
>
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAATTRIBUTE"
>xmlSchemaAttribute</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAATTRIBUTEPTR"
>xmlSchemaAttributePtr</A
>;
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAATTRIBUTEGROUP"
>xmlSchemaAttributeGroup</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAATTRIBUTEGROUPPTR"
>xmlSchemaAttributeGroupPtr</A
>;
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-TYPE-MIXED-CAPS"
>XML_SCHEMAS_TYPE_MIXED</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-NILLABLE-CAPS"
>XML_SCHEMAS_ELEM_NILLABLE</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-GLOBAL-CAPS"
>XML_SCHEMAS_ELEM_GLOBAL</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-DEFAULT-CAPS"
>XML_SCHEMAS_ELEM_DEFAULT</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-FIXED-CAPS"
>XML_SCHEMAS_ELEM_FIXED</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-ABSTRACT-CAPS"
>XML_SCHEMAS_ELEM_ABSTRACT</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-TOPLEVEL-CAPS"
>XML_SCHEMAS_ELEM_TOPLEVEL</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-ELEM-REF-CAPS"
>XML_SCHEMAS_ELEM_REF</A
>
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMAELEMENT"
>xmlSchemaElement</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMAELEMENTPTR"
>xmlSchemaElementPtr</A
>;
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-FACET-UNKNOWN-CAPS"
>XML_SCHEMAS_FACET_UNKNOWN</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-FACET-PRESERVE-CAPS"
>XML_SCHEMAS_FACET_PRESERVE</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-FACET-REPLACE-CAPS"
>XML_SCHEMAS_FACET_REPLACE</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-FACET-COLLAPSE-CAPS"
>XML_SCHEMAS_FACET_COLLAPSE</A
>
struct      <A
HREF="libxml-schemasinternals.html#XMLSCHEMANOTATION"
>xmlSchemaNotation</A
>;
typedef     <A
HREF="libxml-schemasinternals.html#XMLSCHEMANOTATIONPTR"
>xmlSchemaNotationPtr</A
>;
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-QUALIF-ELEM-CAPS"
>XML_SCHEMAS_QUALIF_ELEM</A
>
#define     <A
HREF="libxml-schemasinternals.html#XML-SCHEMAS-QUALIF-ATTR-CAPS"
>XML_SCHEMAS_QUALIF_ATTR</A
>
struct      <A
HREF="libxml-xmlschemas.html#XMLSCHEMA"
>xmlSchema</A
>;
void        <A
HREF="libxml-schemasinternals.html#XMLSCHEMAFREETYPE"
>xmlSchemaFreeType</A
>               (<A
HREF="libxml-schemasinternals.html#XMLSCHEMATYPEPTR"
>xmlSchemaTypePtr</A
> type);</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN31817"
></A
><H2
>Description</H2
><P
></P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN31820"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN31822"
></A
><H3
><A
NAME="XMLSCHEMATYPETYPE"
></A
>enum xmlSchemaTypeType</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef enum {
    XML_SCHEMA_TYPE_BASIC = 1,
    XML_SCHEMA_TYPE_ANY,
    XML_SCHEMA_TYPE_FACET,
    XML_SCHEMA_TYPE_SIMPLE,
    XML_SCHEMA_TYPE_COMPLEX,
    XML_SCHEMA_TYPE_SEQUENCE,
    XML_SCHEMA_TYPE_CHOICE,
    XML_SCHEMA_TYPE_ALL,
    XML_SCHEMA_TYPE_SIMPLE_CONTENT,
    XML_SCHEMA_TYPE_COMPLEX_CONTENT,
    XML_SCHEMA_TYPE_UR,
    XML_SCHEMA_TYPE_RESTRICTION,
    XML_SCHEMA_TYPE_EXTENSION,
    XML_SCHEMA_TYPE_ELEMENT,
    XML_SCHEMA_TYPE_ATTRIBUTE,
    XML_SCHEMA_TYPE_ATTRIBUTEGROUP,
    XML_SCHEMA_TYPE_GROUP,
    XML_SCHEMA_TYPE_NOTATION,
    XML_SCHEMA_TYPE_LIST,
    XML_SCHEMA_TYPE_UNION,
    XML_SCHEMA_FACET_MININCLUSIVE = 1000,
    XML_SCHEMA_FACET_MINEXCLUSIVE,
    XML_SCHEMA_FACET_MAXINCLUSIVE,
    XML_SCHEMA_FACET_MAXEXCLUSIVE,
    XML_SCHEMA_FACET_TOTALDIGITS,
    XML_SCHEMA_FACET_FRACTIONDIGITS,
    XML_SCHEMA_FACET_PATTERN,
    XML_SCHEMA_FACET_ENUMERATION,
    XML_SCHEMA_FACET_WHITESPACE,
    XML_SCHEMA_FACET_LENGTH,
    XML_SCHEMA_FACET_MAXLENGTH,
    XML_SCHEMA_FACET_MINLENGTH
} xmlSchemaTypeType;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31827"
></A
><H3
><A
NAME="XMLSCHEMACONTENTTYPE"
></A
>enum xmlSchemaContentType</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef enum {
    XML_SCHEMA_CONTENT_UNKNOWN = 0,
    XML_SCHEMA_CONTENT_EMPTY = 1,
    XML_SCHEMA_CONTENT_ELEMENTS,
    XML_SCHEMA_CONTENT_MIXED,
    XML_SCHEMA_CONTENT_SIMPLE,
    XML_SCHEMA_CONTENT_MIXED_OR_ELEMENTS,
    XML_SCHEMA_CONTENT_BASIC,
    XML_SCHEMA_CONTENT_ANY
} xmlSchemaContentType;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31832"
></A
><H3
><A
NAME="XMLSCHEMAVAL"
></A
>struct xmlSchemaVal</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaVal;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31837"
></A
><H3
><A
NAME="XMLSCHEMAVALPTR"
></A
>xmlSchemaValPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaVal *xmlSchemaValPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31842"
></A
><H3
><A
NAME="XMLSCHEMATYPE"
></A
>struct xmlSchemaType</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaType {
    xmlSchemaTypeType type;	/* The kind of type */
    struct _xmlSchemaType *next;/* the next type if in a sequence ... */
    xmlChar *name;
    xmlChar *id;
    xmlChar *ref;
    xmlChar *refNs;
    xmlSchemaAnnotPtr annot;
    xmlSchemaTypePtr subtypes;
    xmlSchemaAttributePtr attributes;
    xmlNodePtr node;
    int minOccurs;
    int maxOccurs;

    int flags;
    xmlSchemaContentType contentType;
    xmlChar *base;
    xmlChar *baseNs;
    xmlSchemaTypePtr baseType;
    xmlSchemaFacetPtr facets;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31847"
></A
><H3
><A
NAME="XMLSCHEMATYPEPTR"
></A
>xmlSchemaTypePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaType *xmlSchemaTypePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31852"
></A
><H3
><A
NAME="XMLSCHEMAFACET"
></A
>struct xmlSchemaFacet</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaFacet {
    xmlSchemaTypeType type;	/* The kind of type */
    struct _xmlSchemaFacet *next;/* the next type if in a sequence ... */
    xmlChar *value;
    xmlChar *id;
    xmlSchemaAnnotPtr annot;
    xmlNodePtr node;
    int fixed;
    int whitespace;
    xmlSchemaValPtr val;
    xmlRegexpPtr    regexp;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31857"
></A
><H3
><A
NAME="XMLSCHEMAFACETPTR"
></A
>xmlSchemaFacetPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaFacet *xmlSchemaFacetPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31862"
></A
><H3
><A
NAME="XMLSCHEMAANNOT"
></A
>struct xmlSchemaAnnot</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaAnnot {
    struct _xmlSchemaAnnot *next;
    xmlNodePtr content;         /* the annotation */
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31867"
></A
><H3
><A
NAME="XMLSCHEMAANNOTPTR"
></A
>xmlSchemaAnnotPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaAnnot *xmlSchemaAnnotPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31872"
></A
><H3
><A
NAME="XML-SCHEMAS-ANYATTR-SKIP-CAPS"
></A
>XML_SCHEMAS_ANYATTR_SKIP</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ANYATTR_SKIP	1</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31877"
></A
><H3
><A
NAME="XML-SCHEMAS-ANYATTR-LAX-CAPS"
></A
>XML_SCHEMAS_ANYATTR_LAX</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ANYATTR_LAX		2</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31882"
></A
><H3
><A
NAME="XML-SCHEMAS-ANYATTR-STRICT-CAPS"
></A
>XML_SCHEMAS_ANYATTR_STRICT</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ANYATTR_STRICT	3</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31887"
></A
><H3
><A
NAME="XMLSCHEMAATTRIBUTE"
></A
>struct xmlSchemaAttribute</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaAttribute {
    xmlSchemaTypeType type;	/* The kind of type */
    struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
    xmlChar *name;
    xmlChar *id;
    xmlChar *ref;
    xmlChar *refNs;
    xmlChar *typeName;
    xmlChar *typeNs;
    xmlSchemaAnnotPtr annot;

    xmlSchemaTypePtr base;
    int occurs;
    xmlChar *defValue;
    xmlSchemaTypePtr subtypes;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31892"
></A
><H3
><A
NAME="XMLSCHEMAATTRIBUTEPTR"
></A
>xmlSchemaAttributePtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaAttribute *xmlSchemaAttributePtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31897"
></A
><H3
><A
NAME="XMLSCHEMAATTRIBUTEGROUP"
></A
>struct xmlSchemaAttributeGroup</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaAttributeGroup {
    xmlSchemaTypeType type;	/* The kind of type */
    struct _xmlSchemaAttribute *next;/* the next attribute if in a group ... */
    xmlChar *name;
    xmlChar *id;
    xmlChar *ref;
    xmlChar *refNs;
    xmlSchemaAnnotPtr annot;

    xmlSchemaAttributePtr attributes;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31902"
></A
><H3
><A
NAME="XMLSCHEMAATTRIBUTEGROUPPTR"
></A
>xmlSchemaAttributeGroupPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaAttributeGroup *xmlSchemaAttributeGroupPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31907"
></A
><H3
><A
NAME="XML-SCHEMAS-TYPE-MIXED-CAPS"
></A
>XML_SCHEMAS_TYPE_MIXED</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_TYPE_MIXED		1 &lt;&lt; 0</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31912"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-NILLABLE-CAPS"
></A
>XML_SCHEMAS_ELEM_NILLABLE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_NILLABLE	1 &lt;&lt; 0</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31917"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-GLOBAL-CAPS"
></A
>XML_SCHEMAS_ELEM_GLOBAL</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_GLOBAL		1 &lt;&lt; 1</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31922"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-DEFAULT-CAPS"
></A
>XML_SCHEMAS_ELEM_DEFAULT</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_DEFAULT	1 &lt;&lt; 2</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31927"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-FIXED-CAPS"
></A
>XML_SCHEMAS_ELEM_FIXED</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_FIXED		1 &lt;&lt; 3</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31932"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-ABSTRACT-CAPS"
></A
>XML_SCHEMAS_ELEM_ABSTRACT</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_ABSTRACT	1 &lt;&lt; 4</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31937"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-TOPLEVEL-CAPS"
></A
>XML_SCHEMAS_ELEM_TOPLEVEL</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_TOPLEVEL	1 &lt;&lt; 5</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31942"
></A
><H3
><A
NAME="XML-SCHEMAS-ELEM-REF-CAPS"
></A
>XML_SCHEMAS_ELEM_REF</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_ELEM_REF		1 &lt;&lt; 6</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31947"
></A
><H3
><A
NAME="XMLSCHEMAELEMENT"
></A
>struct xmlSchemaElement</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaElement {
    xmlSchemaTypeType type;	/* The kind of type */
    struct _xmlSchemaType *next;/* the next type if in a sequence ... */
    xmlChar *name;
    xmlChar *id;
    xmlChar *ref;
    xmlChar *refNs;
    xmlSchemaAnnotPtr annot;
    xmlSchemaTypePtr subtypes;
    xmlSchemaAttributePtr attributes;
    xmlNodePtr node;
    int minOccurs;
    int maxOccurs;

    int flags;
    xmlChar *targetNamespace;
    xmlChar *namedType;
    xmlChar *namedTypeNs;
    xmlChar *substGroup;
    xmlChar *substGroupNs;
    xmlChar *scope;
    xmlChar *value;
    struct _xmlSchemaElement *refDecl;
    xmlRegexpPtr contModel;
    xmlSchemaContentType contentType;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31952"
></A
><H3
><A
NAME="XMLSCHEMAELEMENTPTR"
></A
>xmlSchemaElementPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaElement *xmlSchemaElementPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31957"
></A
><H3
><A
NAME="XML-SCHEMAS-FACET-UNKNOWN-CAPS"
></A
>XML_SCHEMAS_FACET_UNKNOWN</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_FACET_UNKNOWN	0</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31962"
></A
><H3
><A
NAME="XML-SCHEMAS-FACET-PRESERVE-CAPS"
></A
>XML_SCHEMAS_FACET_PRESERVE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_FACET_PRESERVE	1</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31967"
></A
><H3
><A
NAME="XML-SCHEMAS-FACET-REPLACE-CAPS"
></A
>XML_SCHEMAS_FACET_REPLACE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_FACET_REPLACE	2</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31972"
></A
><H3
><A
NAME="XML-SCHEMAS-FACET-COLLAPSE-CAPS"
></A
>XML_SCHEMAS_FACET_COLLAPSE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_FACET_COLLAPSE	3</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31977"
></A
><H3
><A
NAME="XMLSCHEMANOTATION"
></A
>struct xmlSchemaNotation</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchemaNotation {
    xmlSchemaTypeType type;	/* The kind of type */
    xmlChar *name;
    xmlSchemaAnnotPtr annot;
    xmlChar *identifier;
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31982"
></A
><H3
><A
NAME="XMLSCHEMANOTATIONPTR"
></A
>xmlSchemaNotationPtr</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef xmlSchemaNotation *xmlSchemaNotationPtr;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31987"
></A
><H3
><A
NAME="XML-SCHEMAS-QUALIF-ELEM-CAPS"
></A
>XML_SCHEMAS_QUALIF_ELEM</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_QUALIF_ELEM		1 &lt;&lt; 0</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31992"
></A
><H3
><A
NAME="XML-SCHEMAS-QUALIF-ATTR-CAPS"
></A
>XML_SCHEMAS_QUALIF_ATTR</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XML_SCHEMAS_QUALIF_ATTR		1 &lt;&lt; 1</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN31997"
></A
><H3
><A
NAME="XMLSCHEMA"
></A
>struct xmlSchema</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>struct xmlSchema {
    xmlChar *name;        /* schema name */
    xmlChar *targetNamespace;     /* the target namespace */
    xmlChar *version;
    xmlChar *id;
    xmlDocPtr doc;
    xmlSchemaAnnotPtr annot;
    int flags;

    xmlHashTablePtr typeDecl;
    xmlHashTablePtr attrDecl;
    xmlHashTablePtr attrgrpDecl;
    xmlHashTablePtr elemDecl;
    xmlHashTablePtr notaDecl;

    xmlHashTablePtr schemasImports;

    void *_private;	/* unused by the library for users or bindings */
};</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN32002"
></A
><H3
><A
NAME="XMLSCHEMAFREETYPE"
></A
>xmlSchemaFreeType ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void        xmlSchemaFreeType               (<A
HREF="libxml-schemasinternals.html#XMLSCHEMATYPEPTR"
>xmlSchemaTypePtr</A
> type);</PRE
></TD
></TR
></TABLE
><P
>Deallocate a Schema Type structure.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN32009"><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>type</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>  a schema type structure</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><BR
CLEAR="all"><BR><TABLE
WIDTH="100%"
BORDER="0"
BGCOLOR="#000000"
CELLPADDING="1"
CELLSPACING="0"
><TR
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="left"
><A
HREF="libxml-xmlschemastypes.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; Previous Page</B
></FONT
></A
></TD
><TD
WIDTH="25%"
BGCOLOR="#0000C0"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="book1.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Home</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#00C000"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="libxml-lib.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
>&nbsp;</TD
></TR
><TR
><TD
COLSPAN="2"
ALIGN="left"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>xmlschemastypes</B
></FONT
></TD
><TD
COLSPAN="2"
ALIGN="right"
>&nbsp;</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>