question: private synchronized ContentModelValidator createChildModel ( int contentSpecIndex ) { XMLContentSpec contentSpec = new XMLContentSpec ( ) ; getContentSpec ( contentSpecIndex , contentSpec ) ; if ( ( contentSpec . type & 0x0f ) == XMLContentSpec . CONTENTSPECNODE_ANY || ( contentSpec . type & 0x0f ) == XMLContentSpec . CONTENTSPECNODE_ANY_OTHER || ( contentSpec . type & 0x0f ) == XMLContentSpec . CONTENTSPECNODE_ANY_LOCAL ) { } else if ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_LEAF ) { if ( contentSpec . value == null && contentSpec . otherValue == null ) throw new RuntimeException ( "ImplementationMessages.VAL_NPCD" ) ; fQName . setValues ( null , ( String ) contentSpec . value , ( String ) contentSpec . value , ( String ) contentSpec . otherValue ) ; return new SimpleContentModel ( contentSpec . type , fQName , null ) ; } else if ( ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_CHOICE ) || ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_SEQ ) ) { XMLContentSpec contentSpecLeft = new XMLContentSpec ( ) ; XMLContentSpec contentSpecRight = new XMLContentSpec ( ) ; getContentSpec ( ( ( int [ ] ) contentSpec . value ) [ 0 ] , contentSpecLeft ) ; getContentSpec ( ( ( int [ ] ) contentSpec . otherValue ) [ 0 ] , contentSpecRight ) ; if ( ( contentSpecLeft . type == XMLContentSpec . CONTENTSPECNODE_LEAF ) && ( contentSpecRight . type == XMLContentSpec . CONTENTSPECNODE_LEAF ) ) { fQName . setValues ( null , ( String ) contentSpecLeft . value , ( String ) contentSpecLeft . value , ( String ) contentSpecLeft . otherValue ) ; fQName2 . setValues ( null , ( String ) contentSpecRight . value , ( String ) contentSpecRight . value , ( String ) contentSpecRight . otherValue ) ; return new SimpleContentModel ( contentSpec . type , fQName , fQName2 ) ; } } else if ( ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_ZERO_OR_ONE ) || ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_ZERO_OR_MORE ) || ( contentSpec . type == XMLContentSpec . CONTENTSPECNODE_ONE_OR_MORE ) ) { XMLContentSpec contentSpecLeft = new XMLContentSpec ( ) ; getContentSpec ( ( ( int [ ] ) contentSpec . value ) [ 0 ] , contentSpecLeft ) ; if ( contentSpecLeft . type == XMLContentSpec . CONTENTSPECNODE_LEAF ) { fQName . setValues ( null , ( String ) contentSpecLeft . value , ( String ) contentSpecLeft . value , ( String ) contentSpecLeft . otherValue ) ; return new SimpleContentModel ( contentSpec . type , fQName , null ) ; } } else { throw new RuntimeException ( "ImplementationMessages.VAL_CST" ) ; } fLeafCount = 0 ; fLeafCount = 0 ; CMNode cmn = buildSyntaxTree ( contentSpecIndex , contentSpec ) ; return new DFAContentModel ( cmn , fLeafCount , false ) ; }
target:  When the element has a 'CHILDREN' model, this method is called to create the content model object. It looks for some special case simple models and creates SimpleContentModel objects for those. For the rest it creates the standard DFA style model.