@ Nonnull public PSTitle readTitleFromXML ( @ Nonnull final IMicroElement eTitle ) { final PSTitle ret = new PSTitle ( ) ; eTitle . forAllAttributes ( ( sNS , sAttrName , sVal ) -> { final String sAttrValue = _getAttributeValue ( sVal ) ; _warn ( ret , "Unsupported attribute '" + sAttrName + "'='" + sAttrValue + "'" ) ; } ) ; eTitle . forAllChildren ( aTitleChild -> { switch ( aTitleChild . getType ( ) ) { case TEXT : ret . addText ( ( ( IMicroText ) aTitleChild ) . getNodeValue ( ) ) ; break ; case ELEMENT : final IMicroElement eElement = ( IMicroElement ) aTitleChild ; if ( CSchematron . NAMESPACE_SCHEMATRON . equals ( eElement . getNamespaceURI ( ) ) ) { final String sLocalName = eElement . getLocalName ( ) ; if ( sLocalName . equals ( CSchematronXML . ELEMENT_DIR ) ) ret . addDir ( readDirFromXML ( eElement ) ) ; else _warn ( ret , "Unsupported Schematron element '" + sLocalName + "'" ) ; } else _warn ( ret , "Unsupported namespace URI '" + eElement . getNamespaceURI ( ) + "'" ) ; break ; case COMMENT : // Ignore comments break ; default : _warn ( ret , "Unsupported child node: " + aTitleChild ) ; } } ) ; return ret ; }
Read a &lt ; title&gt ; element