Class XSDatatypeExp.RenderingContext

java.lang.Object
com.sun.msv.reader.datatype.xsd.XSDatatypeExp.RenderingContext
Enclosing class:
XSDatatypeExp

public static class XSDatatypeExp.RenderingContext extends Object
this object is used to keep the information about the dependency between late-bind datatype objects.

Consider the following schema:


 <span class="invalid-tag">invalid input: '&lt;'</span>xs:simpleType name="foo"&gt;
   <span class="invalid-tag">invalid input: '&lt;'</span>xs:restriction base="bar"&gt;
     <span class="invalid-tag">invalid input: '&lt;'</span>xs:minLength value="3"/&gt;
   <span class="invalid-tag">invalid input: '&lt;'</span>/xs:restriction&gt;
 <span class="invalid-tag">invalid input: '&lt;'</span>/xs:simpleType&gt;
 <span class="invalid-tag">invalid input: '&lt;'</span>xs:simpleType name="bar"&gt;
   <span class="invalid-tag">invalid input: '&lt;'</span>xs:restriction base="foo"&gt;
     <span class="invalid-tag">invalid input: '&lt;'</span>xs:minLength value="3"/&gt;
   <span class="invalid-tag">invalid input: '&lt;'</span>/xs:restriction&gt;
 <span class="invalid-tag">invalid input: '&lt;'</span>/xs:simpleType&gt;
 
Since two types are depending on each other, if you call the getBody method of "foo" type, it will call the getBody method of "bar" type. Then in turn it will call "foo" again. So this will result in the infinite recursion.

This context object is used to detect such condition and reports the dependency to the user.

No method is publicly accessible.

  • Field Details

    • callStack

      private final Stack callStack
  • Constructor Details

    • RenderingContext

      RenderingContext()