private String emitDataTypes ( ) { StringBuilder dtDefs = new StringBuilder ( ) ; while ( emittedDatatypes . size ( ) < datatypes . size ( ) ) { for ( String dt : new HashSet < String > ( datatypes ) ) { if ( ! emittedDatatypes . contains ( dt ) ) { StructureDefinition sd = context . fetchResource ( StructureDefinition . class , ProfileUtilities . sdNs ( dt , null ) ) ; // TODO: Figure out why the line below doesn't work // if (sd != null && !uniq_structures.contains(sd)) if ( sd != null && ! uniq_structure_urls . contains ( sd . getUrl ( ) ) ) dtDefs . append ( "\n" ) . append ( genShapeDefinition ( sd , false ) ) ; emittedDatatypes . add ( dt ) ; } } } return dtDefs . toString ( ) ; }
Generate a shape definition for the current set of datatypes