question: static private WbXmlDefinition loadDefinition ( Properties props ) { String name = props . getProperty ( PROP_WBXML_NAME ) ; long publicId = Long . decode ( props . getProperty ( PROP_WBXML_PUBLIC_ID ) ) ; String xmlPublicId = props . getProperty ( PROP_WBXML_XML_PUBLIC_IDENTIFIER ) ; String xmlUriRef = props . getProperty ( PROP_WBXML_XML_URI_REFERENCE ) ; String clazz = props . getProperty ( PROP_WBXML_CLASS_ELEMENT ) ; WbXmlDefinition def = new WbXmlDefinition ( name , publicId , xmlPublicId , xmlUriRef , clazz ) ; for ( String key : props . stringPropertyNames ( ) ) { if ( key . startsWith ( PROP_WBXML_TAG_PREFIX ) ) { WbXmlTagDef tag = getTagDefinition ( key , props . getProperty ( key ) ) ; if ( tag != null ) { def . addTag ( tag ) ; } } else if ( key . startsWith ( PROP_WBXML_NAMESPACE_PREFIX ) ) { WbXmlNamespaceDef ns = getNamespaceDefinition ( key , props . getProperty ( key ) ) ; if ( ns != null ) { def . addNamespace ( ns ) ; } } else if ( key . startsWith ( PROP_WBXML_ATTR_PREFIX ) && ! key . endsWith ( PROP_WBXML_VALUE_SUFFIX ) ) { WbXmlAttributeDef attr = getAttrDefinition ( props , key , props . getProperty ( key ) ) ; if ( attr != null ) { def . addAttr ( attr ) ; } } else if ( key . startsWith ( PROP_WBXML_ATTR_VALUE_PREFIX ) && ! key . endsWith ( PROP_WBXML_VALUE_SUFFIX ) ) { WbXmlAttributeValueDef attrVal = getAttrValueDefinition ( props , key , props . getProperty ( key ) ) ; if ( attrVal != null ) { def . addAttrValue ( attrVal ) ; } } else if ( key . startsWith ( PROP_WBXML_EXT_PREFIX ) && ! key . endsWith ( PROP_WBXML_VALUE_SUFFIX ) ) { WbXmlExtensionDef ext = getExtDefinition ( props , key , props . getProperty ( key ) ) ; if ( ext != null ) { def . addExtension ( ext ) ; } } else if ( key . startsWith ( PROP_WBXML_OPAQUE_ATTR_PREFIX ) ) { addOpaqueAttrPlugin ( def , props , key , props . getProperty ( key ) ) ; } else if ( key . startsWith ( PROP_WBXML_OPAQUE_TAG_PREFIX ) ) { addOpaqueTagPlugin ( def , props , key , props . getProperty ( key ) ) ; } else if ( key . startsWith ( PROP_WBXML_LINKED_DEF ) ) { addLinkedDefinition ( def , props . getProperty ( key ) ) ; } } String root = props . getProperty ( PROP_WBXML_ROOT_ELEMENT ) ; def . setRoot ( root ) ; return def ; }
target:  Private method that processes a properties file and load a complete  definition. Only the linked definitions need a post processing loop.