private void generateNodeInfo() { NodeInfo nodeInfo = info.getNodeInfo(); Element nodeInfoElement = document.createElement(NodeInfo.class.getSimpleName()); infoElement.appendChild(nodeInfoElement); if (nodeInfo != null) { nodeInfoElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); if (nodeInfo.isVariable()) { nodeInfoElement.setAttribute(VARIABLE_ATTRIBUTE_NAME, TRUE_VALUE); } NamedEntity namedEntity = nodeInfo.getNamedEntityAnnotation(); Element namedEntityElement = document.createElement(NamedEntity.class.getSimpleName()); nodeInfoElement.appendChild(namedEntityElement); if (namedEntity != null) { namedEntityElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); Text namedEntityText = document.createTextNode(namedEntity.name()); namedEntityElement.appendChild(namedEntityText); } else { namedEntityElement.setAttribute(EXIST_ATTRIBUTE_NAME, FALSE_VALUE); } int serial = nodeInfo.getSerial(); Element serialElement = document.createElement(SERIAL_ELEMENT_NAME); nodeInfoElement.appendChild(serialElement); Text serialText = document.createTextNode(String.valueOf(serial)); serialElement.appendChild(serialText); SyntacticInfo syntacticInfo = nodeInfo.getSyntacticInfo(); Element syntacticInfoElement = document.createElement(SyntacticInfo.class.getSimpleName()); nodeInfoElement.appendChild(syntacticInfoElement); if (syntacticInfo != null) { syntacticInfoElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); PartOfSpeech partOfSpeech = syntacticInfo.getPartOfSpeech(); Element partOfSpeechElement = document.createElement(PartOfSpeech.class.getSimpleName()); syntacticInfoElement.appendChild(partOfSpeechElement); if (partOfSpeech != null) { partOfSpeechElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); Element canonicalPartOfSpeechElement = document.createElement(CanonicalPosTag.class.getSimpleName()); partOfSpeechElement.appendChild(canonicalPartOfSpeechElement); Text canonicalPosText = document.createTextNode(partOfSpeech.getCanonicalPosTag().name()); canonicalPartOfSpeechElement.appendChild(canonicalPosText); Element posStringElement = document.createElement(POS_STRING_ELEMENT_NAME); partOfSpeechElement.appendChild(posStringElement); Text posStringText = document.createTextNode(partOfSpeech.getStringRepresentation()); posStringElement.appendChild(posStringText); } else { partOfSpeechElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); } } else { syntacticInfoElement.setAttribute(EXIST_ATTRIBUTE_NAME, FALSE_VALUE); } Integer variableId = nodeInfo.getVariableId(); if (variableId != null) { Element variableIdElement = document.createElement(VARIABLE_ID_ELEMENT_NAME); nodeInfoElement.appendChild(variableIdElement); Text variableIdText = document.createTextNode(variableId.toString()); variableIdElement.appendChild(variableIdText); } String word = nodeInfo.getWord(); Element wordElement = document.createElement(WORD_ELEMENT_NAME); nodeInfoElement.appendChild(wordElement); if (word != null) { wordElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); Text wordText = document.createTextNode(word); wordElement.appendChild(wordText); } else { wordElement.setAttribute(EXIST_ATTRIBUTE_NAME, FALSE_VALUE); } String lemma = nodeInfo.getWordLemma(); Element lemmaElement = document.createElement(LEMMA_ELEMENT_NAME); nodeInfoElement.appendChild(lemmaElement); if (lemma != null) { lemmaElement.setAttribute(EXIST_ATTRIBUTE_NAME, TRUE_VALUE); Text lemmaText = document.createTextNode(lemma); lemmaElement.appendChild(lemmaText); } else { lemmaElement.setAttribute(EXIST_ATTRIBUTE_NAME, FALSE_VALUE); } } else { nodeInfoElement.setAttribute(EXIST_ATTRIBUTE_NAME, FALSE_VALUE); } }