Sophie

Sophie

distrib > Mageia > 7 > aarch64 > by-pkgid > b3bdfe6d859a3d6920ff2c44b38e9a6f > files > 1200

saxon-manual-9.4.0.9-2.mga7.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_18) on Fri Dec 09 20:47:48 GMT 2011 -->
<TITLE>
FiniteStateMachine
</TITLE>

<META NAME="date" CONTENT="2011-12-09">

<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="FiniteStateMachine";
    }
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">
<HR>


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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="../../../../com/saxonica/schema/fsa/Edge.MaxOccursTerm.html" title="class in com.saxonica.schema.fsa"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.TermParticlePair.html" title="class in com.saxonica.schema.fsa"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/saxonica/schema/fsa/FiniteStateMachine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="FiniteStateMachine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
com.saxonica.schema.fsa</FONT>
<BR>
Class FiniteStateMachine</H2>
<PRE>
<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
  <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.saxonica.schema.fsa.FiniteStateMachine</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://download.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>FiniteStateMachine</B><DT>extends <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A><DT>implements <A HREF="http://download.oracle.com/javase/6/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</A></DL>
</PRE>

<P>
Class representing a finite state machine, as a collection of states with transitions between them.

 The finite state machine allows states with counters. The static machine created by the schema compiler
 contains states of type AutomatonState; these may have a minOccurs and maxOccurs value. When such a state
 is entered at validation time, a CountingState is dynamically created that contains a pointer to the fixed
 AutomatonState plus an integer counter. Any transition that goes from the state to itself causes a new
 CountingState to be created with an incremented value of the counter (provided it does not exceed the maxOccurs());
 any transition to a different state causes the counter to be checked against the minOccurs value.
<P>

<P>
<DL>
<DT><B>See Also:</B><DD><A HREF="../../../../serialized-form.html#com.saxonica.schema.fsa.FiniteStateMachine">Serialized Form</A></DL>
<HR>

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

<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.TermParticlePair.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine.TermParticlePair</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->

<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#FiniteStateMachine(com.saxonica.schema.UserComplexType, boolean)">FiniteStateMachine</A></B>(<A HREF="../../../../com/saxonica/schema/UserComplexType.html" title="class in com.saxonica.schema">UserComplexType</A>&nbsp;type,
                   boolean&nbsp;determinized)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Create a finite state machine</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->

<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#allocateStateNumber(com.saxonica.schema.fsa.AutomatonState)">allocateStateNumber</A></B>(<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A>&nbsp;state)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Allocate a unique number to a state, and index the state from the FSM</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/NonDeterminizedState.html" title="class in com.saxonica.schema.fsa">NonDeterminizedState</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#compileParticle(com.saxonica.schema.SchemaCompiler, com.saxonica.schema.Particle, com.saxonica.schema.fsa.NonDeterminizedState, com.saxonica.schema.UserComplexType, com.saxonica.schema.fsa.FiniteStateMachine)">compileParticle</A></B>(<A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler,
                <A HREF="../../../../com/saxonica/schema/Particle.html" title="class in com.saxonica.schema">Particle</A>&nbsp;particle,
                <A HREF="../../../../com/saxonica/schema/fsa/NonDeterminizedState.html" title="class in com.saxonica.schema.fsa">NonDeterminizedState</A>&nbsp;endState,
                <A HREF="../../../../com/saxonica/schema/UserComplexType.html" title="class in com.saxonica.schema">UserComplexType</A>&nbsp;subjectType,
                <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;machine)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Static method to translate a particle to a Finite State Automaton, returning
 the start state of the FSA.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#determinize(com.saxonica.schema.SchemaCompiler, com.saxonica.schema.fsa.FiniteStateMachine)">determinize</A></B>(<A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler,
            <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;nfsa)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determinize the finite state machine: that is, ensure that there are no ambiguous
 transitions from this state.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#display(java.io.PrintStream)">display</A></B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A>&nbsp;err)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Display the finite state machine.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#getInitialState()">getInitialState</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the initial state of this finite state machine</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#getNumberOfStates()">getNumberOfStates</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Determine the number of states in this finite state machine</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/saxonica/schema/Wildcard.html" title="class in com.saxonica.schema">Wildcard</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#getOpenContentWildcard()">getOpenContentWildcard</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the open content wildcard, if any</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#getState(int)">getState</A></B>(int&nbsp;number)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Get the state with a given unique state number</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="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#isOpenContentInterleaved()">isOpenContentInterleaved</A></B>()</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ask whether the open content wildcard for this finite state machine (assuming there is one)
 permits interleaved content (as opposed to suffixed content only)</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#serialize(com.saxonica.schema.SchemaModelSerializer)">serialize</A></B>(<A HREF="../../../../com/saxonica/schema/SchemaModelSerializer.html" title="class in com.saxonica.schema">SchemaModelSerializer</A>&nbsp;serializer)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Output a reppresentation of this finite state machine</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#setInitialState(com.saxonica.schema.fsa.AutomatonState)">setInitialState</A></B>(<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A>&nbsp;initialState)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the initial state of this finite state machine</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#setOpenContentWildcard(com.saxonica.schema.Wildcard, boolean)">setOpenContentWildcard</A></B>(<A HREF="../../../../com/saxonica/schema/Wildcard.html" title="class in com.saxonica.schema">Wildcard</A>&nbsp;wildcard,
                       boolean&nbsp;interleaved)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set the open content wildcard for this machine</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html#subsumesMachine(com.saxonica.schema.fsa.FiniteStateMachine, com.saxonica.schema.fsa.FiniteStateMachine, com.saxonica.schema.SchemaCompiler)">subsumesMachine</A></B>(<A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;base,
                <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;sub,
                <A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Test whether one finite state machine subsumes another FSM: that is, whether for each path through
 the second FSM, there is a corresponding path through the first FSM.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>

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

<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>

<A NAME="FiniteStateMachine(com.saxonica.schema.UserComplexType, boolean)"><!-- --></A><H3>
FiniteStateMachine</H3>
<PRE>
public <B>FiniteStateMachine</B>(<A HREF="../../../../com/saxonica/schema/UserComplexType.html" title="class in com.saxonica.schema">UserComplexType</A>&nbsp;type,
                          boolean&nbsp;determinized)</PRE>
<DL>
<DD>Create a finite state machine
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - the type whose content model is implemented by this finite state machine<DD><CODE>determinized</CODE> - true if this machine is determinized</DL>
</DL>

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

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

<A NAME="allocateStateNumber(com.saxonica.schema.fsa.AutomatonState)"><!-- --></A><H3>
allocateStateNumber</H3>
<PRE>
public void <B>allocateStateNumber</B>(<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A>&nbsp;state)</PRE>
<DL>
<DD>Allocate a unique number to a state, and index the state from the FSM
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>state</CODE> - the state whose number is to be allocated</DL>
</DD>
</DL>
<HR>

<A NAME="getNumberOfStates()"><!-- --></A><H3>
getNumberOfStates</H3>
<PRE>
public int <B>getNumberOfStates</B>()</PRE>
<DL>
<DD>Determine the number of states in this finite state machine
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the number of states</DL>
</DD>
</DL>
<HR>

<A NAME="getInitialState()"><!-- --></A><H3>
getInitialState</H3>
<PRE>
public <A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A> <B>getInitialState</B>()</PRE>
<DL>
<DD>Get the initial state of this finite state machine
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the initial state</DL>
</DD>
</DL>
<HR>

<A NAME="setInitialState(com.saxonica.schema.fsa.AutomatonState)"><!-- --></A><H3>
setInitialState</H3>
<PRE>
public void <B>setInitialState</B>(<A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A>&nbsp;initialState)</PRE>
<DL>
<DD>Set the initial state of this finite state machine
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>initialState</CODE> - the initial state</DL>
</DD>
</DL>
<HR>

<A NAME="getState(int)"><!-- --></A><H3>
getState</H3>
<PRE>
public <A HREF="../../../../com/saxonica/schema/fsa/AutomatonState.html" title="class in com.saxonica.schema.fsa">AutomatonState</A> <B>getState</B>(int&nbsp;number)</PRE>
<DL>
<DD>Get the state with a given unique state number
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>number</CODE> - the number of the state
<DT><B>Returns:</B><DD>the state with this unique state number</DL>
</DD>
</DL>
<HR>

<A NAME="setOpenContentWildcard(com.saxonica.schema.Wildcard, boolean)"><!-- --></A><H3>
setOpenContentWildcard</H3>
<PRE>
public void <B>setOpenContentWildcard</B>(<A HREF="../../../../com/saxonica/schema/Wildcard.html" title="class in com.saxonica.schema">Wildcard</A>&nbsp;wildcard,
                                   boolean&nbsp;interleaved)</PRE>
<DL>
<DD>Set the open content wildcard for this machine
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>wildcard</CODE> - the open content wildcard (may be null)<DD><CODE>interleaved</CODE> - true if open content may be interleaved, false if it must be suffixed</DL>
</DD>
</DL>
<HR>

<A NAME="compileParticle(com.saxonica.schema.SchemaCompiler, com.saxonica.schema.Particle, com.saxonica.schema.fsa.NonDeterminizedState, com.saxonica.schema.UserComplexType, com.saxonica.schema.fsa.FiniteStateMachine)"><!-- --></A><H3>
compileParticle</H3>
<PRE>
public static <A HREF="../../../../com/saxonica/schema/fsa/NonDeterminizedState.html" title="class in com.saxonica.schema.fsa">NonDeterminizedState</A> <B>compileParticle</B>(<A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler,
                                                   <A HREF="../../../../com/saxonica/schema/Particle.html" title="class in com.saxonica.schema">Particle</A>&nbsp;particle,
                                                   <A HREF="../../../../com/saxonica/schema/fsa/NonDeterminizedState.html" title="class in com.saxonica.schema.fsa">NonDeterminizedState</A>&nbsp;endState,
                                                   <A HREF="../../../../com/saxonica/schema/UserComplexType.html" title="class in com.saxonica.schema">UserComplexType</A>&nbsp;subjectType,
                                                   <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;machine)
                                            throws <A HREF="../../../../net/sf/saxon/type/SchemaException.html" title="class in net.sf.saxon.type">SchemaException</A>,
                                                   <A HREF="../../../../net/sf/saxon/type/UnresolvedReferenceException.html" title="class in net.sf.saxon.type">UnresolvedReferenceException</A></PRE>
<DL>
<DD>Static method to translate a particle to a Finite State Automaton, returning
 the start state of the FSA. This precisely follows Henry Thompson's and Richard Tobin's algorithm,
  <a href="http://www.ltg.ed.ac.uk/~ht/XML_Europe_2003.html">published here</a>
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - user for error reporting<DD><CODE>particle</CODE> - the particle to be compiled, which is either an ElementDeclaration,
 a WildCard, a choice, or a sequence<DD><CODE>endState</CODE> - the State representing the final state of the automaton<DD><CODE>subjectType</CODE> - the complex type to which this particle belongs<DD><CODE>machine</CODE> - the finite state machine to which the state belongs
<DT><B>Returns:</B><DD>the initial state of the new Automaton
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../net/sf/saxon/type/SchemaException.html" title="class in net.sf.saxon.type">SchemaException</A></CODE> - if XSD constraints are violated
<DD><CODE><A HREF="../../../../net/sf/saxon/type/UnresolvedReferenceException.html" title="class in net.sf.saxon.type">UnresolvedReferenceException</A></CODE> - if unresolved references in the schema are found</DL>
</DD>
</DL>
<HR>

<A NAME="display(java.io.PrintStream)"><!-- --></A><H3>
display</H3>
<PRE>
public void <B>display</B>(<A HREF="http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html?is-external=true" title="class or interface in java.io">PrintStream</A>&nbsp;err)</PRE>
<DL>
<DD>Display the finite state machine. This is a diagnostic method for
 internal use.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>err</CODE> - the output destination</DL>
</DD>
</DL>
<HR>

<A NAME="subsumesMachine(com.saxonica.schema.fsa.FiniteStateMachine, com.saxonica.schema.fsa.FiniteStateMachine, com.saxonica.schema.SchemaCompiler)"><!-- --></A><H3>
subsumesMachine</H3>
<PRE>
public static <A HREF="http://download.oracle.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>subsumesMachine</B>(<A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;base,
                                     <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;sub,
                                     <A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler)</PRE>
<DL>
<DD>Test whether one finite state machine subsumes another FSM: that is, whether for each path through
 the second FSM, there is a corresponding path through the first FSM.  The algorithm
 used is as published by Thompson and Tobin, XML Europe 2003.
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>base</CODE> - the first FSM (representing the base type)<DD><CODE>sub</CODE> - the other FSM (representing the type that is derived by restriction, validly or otherwise)<DD><CODE>compiler</CODE> - used for error reporting
<DT><B>Returns:</B><DD>null indicating that the first machine does indeed subsume the other; or a string indicating
         why it doesn't.</DL>
</DD>
</DL>
<HR>

<A NAME="determinize(com.saxonica.schema.SchemaCompiler, com.saxonica.schema.fsa.FiniteStateMachine)"><!-- --></A><H3>
determinize</H3>
<PRE>
public static <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A> <B>determinize</B>(<A HREF="../../../../com/saxonica/schema/SchemaCompiler.html" title="class in com.saxonica.schema">SchemaCompiler</A>&nbsp;compiler,
                                             <A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.html" title="class in com.saxonica.schema.fsa">FiniteStateMachine</A>&nbsp;nfsa)
                                      throws <A HREF="../../../../net/sf/saxon/type/SchemaException.html" title="class in net.sf.saxon.type">SchemaException</A></PRE>
<DL>
<DD>Determinize the finite state machine: that is, ensure that there are no ambiguous
 transitions from this state. When presented with an input token, the
 FSA can then examine the specific transitions from this state and either
 choose one of them, or throw an error.
 <p>
 This is a revised implementation, based more closely on Aho and Ullman p93,
 to try to eliminate the rare problems that occur when a state has two transitions
 for the same symbol. (Given UPA, this should occur only with nested loops, e.g.
 (a{10,11}){1,3} which allows a sequence of 10, 20, 30, 11, 22, or 33 a's.)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>compiler</CODE> - the schema compiler<DD><CODE>nfsa</CODE> - the finite state machine to be determinized
<DT><B>Returns:</B><DD>the new deterministic finite state machine
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../net/sf/saxon/type/SchemaException.html" title="class in net.sf.saxon.type">SchemaException</A></CODE> - if an XSD constraint is violated</DL>
</DD>
</DL>
<HR>

<A NAME="getOpenContentWildcard()"><!-- --></A><H3>
getOpenContentWildcard</H3>
<PRE>
public <A HREF="../../../../com/saxonica/schema/Wildcard.html" title="class in com.saxonica.schema">Wildcard</A> <B>getOpenContentWildcard</B>()</PRE>
<DL>
<DD>Get the open content wildcard, if any
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>the open content wildcard for this finite state machine, if one is defined</DL>
</DD>
</DL>
<HR>

<A NAME="isOpenContentInterleaved()"><!-- --></A><H3>
isOpenContentInterleaved</H3>
<PRE>
public boolean <B>isOpenContentInterleaved</B>()</PRE>
<DL>
<DD>Ask whether the open content wildcard for this finite state machine (assuming there is one)
 permits interleaved content (as opposed to suffixed content only)
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>

<DT><B>Returns:</B><DD>true if the open content wildcard permits interleaved content.</DL>
</DD>
</DL>
<HR>

<A NAME="serialize(com.saxonica.schema.SchemaModelSerializer)"><!-- --></A><H3>
serialize</H3>
<PRE>
public void <B>serialize</B>(<A HREF="../../../../com/saxonica/schema/SchemaModelSerializer.html" title="class in com.saxonica.schema">SchemaModelSerializer</A>&nbsp;serializer)
               throws <A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></PRE>
<DL>
<DD>Output a reppresentation of this finite state machine
<P>
<DD><DL>
</DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>serializer</CODE> - the schema model serializer to which this representation is to be written
<DT><B>Throws:</B>
<DD><CODE><A HREF="../../../../net/sf/saxon/trans/XPathException.html" title="class in net.sf.saxon.trans">XPathException</A></CODE> - if any error occurs during serialization</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <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="../../../../com/saxonica/schema/fsa/Edge.MaxOccursTerm.html" title="class in com.saxonica.schema.fsa"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../../com/saxonica/schema/fsa/FiniteStateMachine.TermParticlePair.html" title="class in com.saxonica.schema.fsa"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../index.html?com/saxonica/schema/fsa/FiniteStateMachine.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="FiniteStateMachine.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
  SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>
Copyright (c) 2004-2011 Saxonica Limited. All rights reserved.
</BODY>
</HTML>