<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Thu Sep 25 16:46:56 PDT 2003 -->
<TITLE>
QNameSetSpecification (XMLBeans Documentation)
</TITLE>
<META NAME="keywords" CONTENT="org.apache.xmlbeans.QNameSetSpecification,QNameSetSpecification interface">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
</HEAD>
<SCRIPT>
function asd()
{
parent.document.title="QNameSetSpecification (XMLBeans Documentation)";
}
</SCRIPT>
<BODY BGCOLOR="white" onload="asd();">

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_top"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/xmlbeans/GDurationSpecification.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/SchemaAttributeGroup.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="QNameSetSpecification.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
org.apache.xmlbeans</FONT>
<BR>
Interface QNameSetSpecification</H2>
<DL>
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A>, <A HREF="../../../org/apache/xmlbeans/QNameSetBuilder.html">QNameSetBuilder</A></DD>
</DL>
<HR>
<DL>
<DT>public interface <B>QNameSetSpecification</B></DL>

<P>
Represents a lattice of finite and infinite sets of QNames.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../org/apache/xmlbeans/QNameSet.html"><CODE>QNameSet</CODE></A></DL>
<HR>

<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->


<!-- =========== FIELD SUMMARY =========== -->


<!-- ======== CONSTRUCTOR SUMMARY ======== -->


<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Method Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#contains(javax.xml.namespace.QName)">contains</A></B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the set contains the given QName.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#containsAll(org.apache.xmlbeans.QNameSetSpecification)">containsAll</A></B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the parameter is a subset of this set.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#excludedQNamesInIncludedURIs()">excludedQNamesInIncludedURIs</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The finite set of QNames that are excluded from the set within namespaces
 that are otherwise included.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#excludedURIs()">excludedURIs</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The finite set of namespace URIs that are almost completely excluded from
 the set (that is, each namespace URI that included in the set with with
 a finite number of QName exceptions).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#includedQNamesInExcludedURIs()">includedQNamesInExcludedURIs</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The finite set of QNames that are included in the set within namespaces
 that are otherwise excluded.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#includedURIs()">includedURIs</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The finite set of namespace URIs that are almost completely included in
 the set (that is, each namespace URI that included in the set with with
 a finite number of QName exceptions).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#intersect(org.apache.xmlbeans.QNameSetSpecification)">intersect</A></B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the intersection with another QNameSet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#inverse()">inverse</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return the inverse of this QNameSet.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#isAll()">isAll</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the set is the set of all QNames.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#isDisjoint(org.apache.xmlbeans.QNameSetSpecification)">isDisjoint</A></B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if is disjoint from the specified set.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#isEmpty()">isEmpty</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;True if the set is empty.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html#union(org.apache.xmlbeans.QNameSetSpecification)">union</A></B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the union with another QNameSet.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<!-- ============ FIELD DETAIL =========== -->


<!-- ========= CONSTRUCTOR DETAIL ======== -->


<!-- ============ METHOD DETAIL ========== -->

<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=1><FONT SIZE="+2">
<B>Method Detail</B></FONT></TD>
</TR>
</TABLE>

<A NAME="contains(javax.xml.namespace.QName)"><!-- --></A><H3>
contains</H3>
<PRE>
public boolean <B>contains</B>(<A HREF="http://java.sun.com/j2ee/1.4/docs/api/javax/xml/namespace/QName.html">QName</A>&nbsp;name)</PRE>
<DL>
<DD>True if the set contains the given QName.

 Roughly equivalent to:
    (includedURIs() == null ?
           excludedURIs().contains(namespace) :
           includedURIs().contains(namespace)
    ) ?
        !excludedQNamesInIncludedURIs().contains(name) :
         includedQNamesInExcludedURIs().contains(name)
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isAll()"><!-- --></A><H3>
isAll</H3>
<PRE>
public boolean <B>isAll</B>()</PRE>
<DL>
<DD>True if the set is the set of all QNames.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isEmpty()"><!-- --></A><H3>
isEmpty</H3>
<PRE>
public boolean <B>isEmpty</B>()</PRE>
<DL>
<DD>True if the set is empty.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="containsAll(org.apache.xmlbeans.QNameSetSpecification)"><!-- --></A><H3>
containsAll</H3>
<PRE>
public boolean <B>containsAll</B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</PRE>
<DL>
<DD>True if the parameter is a subset of this set.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="isDisjoint(org.apache.xmlbeans.QNameSetSpecification)"><!-- --></A><H3>
isDisjoint</H3>
<PRE>
public boolean <B>isDisjoint</B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</PRE>
<DL>
<DD>True if is disjoint from the specified set.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="intersect(org.apache.xmlbeans.QNameSetSpecification)"><!-- --></A><H3>
intersect</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A> <B>intersect</B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</PRE>
<DL>
<DD>Returns the intersection with another QNameSet.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="union(org.apache.xmlbeans.QNameSetSpecification)"><!-- --></A><H3>
union</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A> <B>union</B>(<A HREF="../../../org/apache/xmlbeans/QNameSetSpecification.html">QNameSetSpecification</A>&nbsp;set)</PRE>
<DL>
<DD>Returns the union with another QNameSet.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="inverse()"><!-- --></A><H3>
inverse</H3>
<PRE>
public <A HREF="../../../org/apache/xmlbeans/QNameSet.html">QNameSet</A> <B>inverse</B>()</PRE>
<DL>
<DD>Return the inverse of this QNameSet. That is the QNameSet which
 contains all the QNames not contained in this set. In other words
 for which set.contains(name) != set.inverse().contains(name) for
 all names.
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="excludedURIs()"><!-- --></A><H3>
excludedURIs</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A> <B>excludedURIs</B>()</PRE>
<DL>
<DD>The finite set of namespace URIs that are almost completely excluded from
 the set (that is, each namespace URI that included in the set with with
 a finite number of QName exceptions). Null if the set of namespaceURIs
 that are almost completely included is infinite.
 <p>
 Null (meaning almost all URIs excluded) if includedURIs() is non-null;
 non-null otherwise.
 <p>
 The same set as inverse().includedURIs().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="includedURIs()"><!-- --></A><H3>
includedURIs</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A> <B>includedURIs</B>()</PRE>
<DL>
<DD>The finite set of namespace URIs that are almost completely included in
 the set (that is, each namespace URI that included in the set with with
 a finite number of QName exceptions). Null if the set of namespaceURIs
 that are almost completely included is infinite.
 <p>
 Null (meaning almost all URIs included) if excludedURIs() is non-null;
 non-null otherwise.
 <p>
 The same as inverse.excludedURIs().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="excludedQNamesInIncludedURIs()"><!-- --></A><H3>
excludedQNamesInIncludedURIs</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A> <B>excludedQNamesInIncludedURIs</B>()</PRE>
<DL>
<DD>The finite set of QNames that are excluded from the set within namespaces
 that are otherwise included. Should only contain QNames within namespace
 that are within the set includedURIs() (or any URI, if includedURIs()
 is null, which means that all URIs are almost completely included).
 <p>
 Never null.
 <p>
 The same set as inverse().includedQNames().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<HR>

<A NAME="includedQNamesInExcludedURIs()"><!-- --></A><H3>
includedQNamesInExcludedURIs</H3>
<PRE>
public <A HREF="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Set.html">Set</A> <B>includedQNamesInExcludedURIs</B>()</PRE>
<DL>
<DD>The finite set of QNames that are included in the set within namespaces
 that are otherwise excluded. Should only contain QNames within namespace
 that are within the set excludedURIs() (or any URI, if excludedURIs()
 is null, which means that all URIs are almost completely excluded).
 <p>
 Never null.
 <p>
 The same as inverse().excludedQNames().
<P>
<DD><DL>
</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>

<!-- ========== START OF NAVBAR ========== -->
<A NAME="navbar_bottom"><!-- --></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../org/apache/xmlbeans/GDurationSpecification.html"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../org/apache/xmlbeans/SchemaAttributeGroup.html"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="QNameSetSpecification.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;
<SCRIPT>
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<!-- =========== END OF NAVBAR =========== -->

<HR>

</BODY>
</HTML>
