List of usage examples for org.xml.sax ContentHandler endElement
public void endElement(String uri, String localName, String qName) throws SAXException;
From source file:com.mirth.connect.plugins.datatypes.hl7v2.ER7Reader.java
private void handleComponent(ContentHandler contentHandler, String subcomponentSeparator, String segmentId, int fieldId, int componentId, String component) throws SAXException { if (handleSubcomponents && !subcomponentSeparator.isEmpty() && (component.indexOf(subcomponentSeparator) > -1)) { contentHandler.startElement("", segmentId + "." + fieldId + "." + componentId, "", null); // check if we have subcomponents, if so add them StringTokenizer subcomponentTokenizer = new StringTokenizer(component, subcomponentSeparator, true); handleSubcomponents(contentHandler, subcomponentSeparator, segmentId, fieldId, componentId, 1, subcomponentTokenizer);/*w ww .j a v a2 s. co m*/ contentHandler.endElement("", segmentId + "." + fieldId + "." + componentId, null); } else { logger.trace("handling component: " + component); // the naming is SEG.<field#>.<component#> contentHandler.startElement("", segmentId + "." + fieldId + "." + componentId, "", null); contentHandler.characters(component.toCharArray(), 0, component.length()); contentHandler.endElement("", segmentId + "." + fieldId + "." + componentId, ""); } }
From source file:com.mirth.connect.plugins.datatypes.hl7v2.ER7Reader.java
private void handleSubcomponents(ContentHandler contentHandler, String subcomponentSeparator, String segmentId, int fieldId, int componentId, int subcomponentId, StringTokenizer subcomponentTokenizer) throws SAXException { boolean atLastSubcomponent = true; while (subcomponentTokenizer.hasMoreTokens()) { String subcomponent = subcomponentTokenizer.nextToken(); if (subcomponent.equals(subcomponentSeparator)) { if (atLastSubcomponent) { contentHandler.startElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, "", null); contentHandler.characters(EMPTY_CHAR_ARRAY, 0, 0); contentHandler.endElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, ""); }/*w ww . j a v a 2s . c o m*/ subcomponentId++; atLastSubcomponent = true; } else { logger.trace("handling subcomponent: " + subcomponentId); atLastSubcomponent = false; // the naming is SEG.<field#>.<component#>.<subcomponent#> contentHandler.startElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, "", null); contentHandler.characters(subcomponent.toCharArray(), 0, subcomponent.length()); contentHandler.endElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, ""); } } if (atLastSubcomponent) { contentHandler.startElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, "", null); contentHandler.characters(EMPTY_CHAR_ARRAY, 0, 0); contentHandler.endElement("", segmentId + "." + fieldId + "." + componentId + "." + subcomponentId, ""); } }
From source file:org.syncope.core.report.UserReportlet.java
@Override @Transactional(readOnly = true)// ww w . j a v a 2 s . c o m public void extract(final ContentHandler handler) throws SAXException, ReportException { if (getConf() == null || !(getConf() instanceof UserReportletConf)) { throw new ReportException(new IllegalArgumentException( "Expected " + UserReportletConf.class.getName() + ", got " + getConf())); } UserReportletConf conf = (UserReportletConf) getConf(); AttributesImpl atts = new AttributesImpl(); atts.addAttribute("", "", ATTR_NAME, XSD_STRING, getConf().getName()); atts.addAttribute("", "", ATTR_CLASS, XSD_STRING, getClass().getName()); handler.startElement("", "", ELEMENT_REPORTLET, atts); for (int i = 1; i <= (count(conf) / PAGE_SIZE) + 1; i++) { doExtract(handler, conf, getPagedUsers(conf, i)); } handler.endElement("", "", ELEMENT_REPORTLET); }
From source file:com.mirth.connect.plugins.datatypes.hl7v2.ER7Reader.java
private void handleFieldRepetitions(ContentHandler contentHandler, String componentSeparator, String repetitionSeparator, String subcomponentSeparator, String segmentId, int fieldId, String field) throws SAXException { StringTokenizer fieldRepetitionTokenizer = new StringTokenizer(field, repetitionSeparator, true); boolean atLastRepetition = true; while (fieldRepetitionTokenizer.hasMoreTokens()) { field = fieldRepetitionTokenizer.nextToken(); if (field.equals(repetitionSeparator)) { // check for ~~ if (atLastRepetition) { contentHandler.startElement("", segmentId + "." + fieldId, "", null); contentHandler.characters(EMPTY_CHAR_ARRAY, 0, 0); contentHandler.endElement("", segmentId + "." + fieldId, ""); }/* ww w. j a v a2 s. c o m*/ atLastRepetition = true; } else { logger.trace("handling repetition: " + field); atLastRepetition = false; handleField(contentHandler, componentSeparator, subcomponentSeparator, segmentId, fieldId, field); } } if (atLastRepetition) { contentHandler.startElement("", segmentId + "." + fieldId, "", null); contentHandler.characters(EMPTY_CHAR_ARRAY, 0, 0); contentHandler.endElement("", segmentId + "." + fieldId, ""); } }
From source file:net.ontopia.topicmaps.db2tm.RelationMapping.java
protected void outputField(Field field, ContentHandler dh) throws SAXException { AttributesImpl atts = new AttributesImpl(); if (field.getFieldType() == Field.TYPE_SUBJECT_LOCATOR) { addAttribute(atts, "column", "CDATA", field.getColumn()); dh.startElement("", "", "subject-locator", atts); char[] c = field.getPattern().toCharArray(); dh.characters(c, 0, c.length);// ww w .j a v a2s . c om dh.endElement("", "", "subject-locator"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_SUBJECT_IDENTIFIER) { addAttribute(atts, "column", "CDATA", field.getColumn()); dh.startElement("", "", "subject-identifier", atts); char[] c = field.getPattern().toCharArray(); dh.characters(c, 0, c.length); dh.endElement("", "", "subject-identifier"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_ITEM_IDENTIFIER) { addAttribute(atts, "column", "CDATA", field.getColumn()); dh.startElement("", "", "item-identifier", atts); char[] c = field.getPattern().toCharArray(); dh.characters(c, 0, c.length); dh.endElement("", "", "item-identifier"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_OCCURRENCE) { addAttribute(atts, "column", "CDATA", field.getColumn()); addAttribute(atts, "type", "CDATA", field.getType()); addAttribute(atts, "scope", "CDATA", field.getScope()); addAttribute(atts, "datatype", "CDATA", field.getDatatype()); dh.startElement("", "", "occurrence", atts); dh.endElement("", "", "occurrence"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_TOPIC_NAME) { addAttribute(atts, "column", "CDATA", field.getColumn()); addAttribute(atts, "type", "CDATA", field.getType()); addAttribute(atts, "scope", "CDATA", field.getScope()); dh.startElement("", "", "topic-name", atts); dh.endElement("", "", "topic-name"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_PLAYER) { addAttribute(atts, "rtype", "CDATA", field.getRoleType()); addAttribute(atts, "atype", "CDATA", field.getAssociationType()); addAttribute(atts, "scope", "CDATA", field.getScope()); dh.startElement("", "", "player", atts); atts.clear(); for (Field orole : field.getOtherRoleFields()) { addAttribute(atts, "rtype", "CDATA", orole.getRoleType()); addAttribute(atts, "player", "CDATA", orole.getPlayer()); dh.startElement("", "", "other", atts); dh.endElement("", "", "other"); atts.clear(); } dh.endElement("", "", "player"); atts.clear(); } else if (field.getFieldType() == Field.TYPE_ASSOCIATION_ROLE) { addAttribute(atts, "type", "CDATA", field.getRoleType()); addAttribute(atts, "player", "CDATA", field.getPlayer()); dh.startElement("", "", "role", atts); dh.endElement("", "", "role"); atts.clear(); } else throw new OntopiaRuntimeException("Unknown field type: " + field.getType()); }
From source file:com.mirth.connect.plugins.datatypes.hl7v2.ER7Reader.java
private void handleFieldOrRepetitions(ContentHandler contentHandler, String fieldSeparator, String componentSeparator, String subcomponentSeparator, String repetitionSeparator, String escapeCharacter, String segmentId, StringTokenizer fieldTokenizer) throws SAXException { int fieldId = 0; boolean atLastField = false; while (fieldTokenizer.hasMoreTokens()) { boolean enteredHeader = false; /*/*from w w w . j a va 2s . c o m*/ * Go through each element and add as new child under the segment * element */ String field = fieldTokenizer.nextToken(); // the naming is SEG.<field#> if (field.equals(fieldSeparator)) { if (atLastField) { contentHandler.startElement("", segmentId + "." + fieldId, "", null); contentHandler.endElement("", segmentId + "." + fieldId, ""); } fieldId++; atLastField = true; } else { logger.trace("handling field or repetition: " + field); atLastField = false; // batch support if (segmentId.equals("MSH") || segmentId.equals("FHS") || segmentId.equals("BHS")) { enteredHeader = true; } if (enteredHeader && (fieldId == 1)) { contentHandler.startElement("", segmentId + "." + fieldId, "", null); contentHandler.characters(fieldSeparator.toCharArray(), 0, 1); contentHandler.endElement("", segmentId + "." + (fieldId), null); fieldId++; contentHandler.startElement("", segmentId + "." + fieldId, "", null); char[] specialCharacters; if (!subcomponentSeparator.isEmpty()) { specialCharacters = new char[] { componentSeparator.charAt(0), repetitionSeparator.charAt(0), escapeCharacter.charAt(0), subcomponentSeparator.charAt(0) }; } else if (!escapeCharacter.isEmpty()) { specialCharacters = new char[] { componentSeparator.charAt(0), repetitionSeparator.charAt(0), escapeCharacter.charAt(0), }; } else { specialCharacters = new char[] { componentSeparator.charAt(0), repetitionSeparator.charAt(0), }; } contentHandler.characters(specialCharacters, 0, specialCharacters.length); contentHandler.endElement("", segmentId + "." + (fieldId), null); } else if (enteredHeader && (fieldId == 2)) { // do nothing } else { if (handleRepetitions) { handleFieldRepetitions(contentHandler, componentSeparator, repetitionSeparator, subcomponentSeparator, segmentId, fieldId, field); } else { handleField(contentHandler, componentSeparator, subcomponentSeparator, segmentId, fieldId, field); } } } } if (atLastField) { contentHandler.startElement("", segmentId + "." + fieldId, "", null); contentHandler.endElement("", segmentId + "." + fieldId, ""); } }
From source file:net.ontopia.topicmaps.db2tm.RelationMapping.java
protected void outputEntities(Relation rel, ContentHandler dh) throws SAXException { AttributesImpl atts = new AttributesImpl(); for (Entity entity : rel.getEntities()) { if (entity.getEntityType() == Entity.TYPE_TOPIC) { // <topic> if (entity.getId() != null) addAttribute(atts, "id", "CDATA", entity.getId()); addAttribute(atts, "type", "CDATA", entity.getAssociationType()); dh.startElement("", "", "topic", atts); atts.clear();//from w ww. ja v a 2 s .c o m outputFields(entity, dh); // </topic> dh.endElement("", "", "topic"); } else if (entity.getEntityType() == Entity.TYPE_ASSOCIATION) { // <association> if (entity.getId() != null) addAttribute(atts, "id", "CDATA", entity.getId()); addAttribute(atts, "type", "CDATA", entity.getAssociationType()); addAttribute(atts, "scope", "CDATA", entity.getScope()); dh.startElement("", "", "association", atts); atts.clear(); outputFields(entity, dh); // </association> dh.endElement("", "", "association"); } } }
From source file:org.syncope.core.report.UserReportlet.java
private void doExtractAttributes(final ContentHandler handler, final AbstractAttributableTO attributableTO, final Collection<String> attrs, final Collection<String> derAttrs, final Collection<String> virAttrs) throws SAXException { AttributesImpl atts = new AttributesImpl(); if (!attrs.isEmpty()) { Map<String, AttributeTO> attrMap = attributableTO.getAttributeMap(); handler.startElement("", "", "attributes", null); for (String attrName : attrs) { atts.clear();//from w w w. ja v a2 s. c o m atts.addAttribute("", "", ATTR_NAME, XSD_STRING, attrName); handler.startElement("", "", "attribute", atts); if (attrMap.containsKey(attrName)) { for (String value : attrMap.get(attrName).getValues()) { handler.startElement("", "", "value", null); handler.characters(value.toCharArray(), 0, value.length()); handler.endElement("", "", "value"); } } else { LOG.debug("{} not found for {}[{}]", new Object[] { attrName, attributableTO.getClass().getSimpleName(), attributableTO.getId() }); } handler.endElement("", "", "attribute"); } handler.endElement("", "", "attributes"); } if (!derAttrs.isEmpty()) { Map<String, AttributeTO> derAttrMap = attributableTO.getDerivedAttributeMap(); handler.startElement("", "", "derivedAttributes", null); for (String attrName : derAttrs) { atts.clear(); atts.addAttribute("", "", ATTR_NAME, XSD_STRING, attrName); handler.startElement("", "", "derivedAttribute", atts); if (derAttrMap.containsKey(attrName)) { for (String value : derAttrMap.get(attrName).getValues()) { handler.startElement("", "", "value", null); handler.characters(value.toCharArray(), 0, value.length()); handler.endElement("", "", "value"); } } else { LOG.debug("{} not found for {}[{}]", new Object[] { attrName, attributableTO.getClass().getSimpleName(), attributableTO.getId() }); } handler.endElement("", "", "derivedAttribute"); } handler.endElement("", "", "derivedAttributes"); } if (!virAttrs.isEmpty()) { Map<String, AttributeTO> virAttrMap = attributableTO.getVirtualAttributeMap(); handler.startElement("", "", "virtualAttributes", null); for (String attrName : virAttrs) { atts.clear(); atts.addAttribute("", "", ATTR_NAME, XSD_STRING, attrName); handler.startElement("", "", "virtualAttribute", atts); if (virAttrMap.containsKey(attrName)) { for (String value : virAttrMap.get(attrName).getValues()) { handler.startElement("", "", "value", null); handler.characters(value.toCharArray(), 0, value.length()); handler.endElement("", "", "value"); } } else { LOG.debug("{} not found for {}[{}]", new Object[] { attrName, attributableTO.getClass().getSimpleName(), attributableTO.getId() }); } handler.endElement("", "", "virtualAttribute"); } handler.endElement("", "", "virtualAttributes"); } }
From source file:com.mirth.connect.model.converters.NCPDPReader.java
private String parseHeader(String message, ContentHandler contentHandler) throws SAXException { String headerElementName = StringUtils.EMPTY; /*/*from w ww. j a v a 2 s .c o m*/ * The first segment is always the Transaction header so we will process * it seperately. */ if (message.indexOf(segmentDelimeter) != -1) { String header = message.substring(0, message.indexOf(segmentDelimeter)); // handle a request (requests have a longer header than responses) if (header.length() > 40) { String transactionName = NCPDPReference.getInstance().getTransactionName(header.substring(8, 10)); version = header.substring(6, 8); headerElementName = "NCPDP_" + version + "_" + transactionName + "_Request"; contentHandler.startElement("", headerElementName, "", null); contentHandler.startElement("", "TransactionHeaderRequest", "", null); contentHandler.startElement("", "BinNumber", "", null); contentHandler.characters(header.toCharArray(), 0, 6); contentHandler.endElement("", "BinNumber", ""); contentHandler.startElement("", "VersionReleaseNumber", "", null); contentHandler.characters(header.toCharArray(), 6, 2); contentHandler.endElement("", "VersionReleaseNumber", ""); contentHandler.startElement("", "TransactionCode", "", null); contentHandler.characters(header.toCharArray(), 8, 2); contentHandler.endElement("", "TransactionCode", ""); contentHandler.startElement("", "ProcessorControlNumber", "", null); contentHandler.characters(header.toCharArray(), 10, 10); contentHandler.endElement("", "ProcessorControlNumber", ""); contentHandler.startElement("", "TransactionCount", "", null); contentHandler.characters(header.toCharArray(), 20, 1); contentHandler.endElement("", "TransactionCount", ""); contentHandler.startElement("", "ServiceProviderIdQualifier", "", null); contentHandler.characters(header.toCharArray(), 21, 2); contentHandler.endElement("", "ServiceProviderIdQualifier", ""); contentHandler.startElement("", "ServiceProviderId", "", null); contentHandler.characters(header.toCharArray(), 23, 15); contentHandler.endElement("", "ServiceProviderId", ""); contentHandler.startElement("", "DateOfService", "", null); contentHandler.characters(header.toCharArray(), 38, 8); contentHandler.endElement("", "DateOfService", ""); contentHandler.startElement("", "SoftwareVendorCertificationId", "", null); contentHandler.characters(header.toCharArray(), 46, 10); contentHandler.endElement("", "SoftwareVendorCertificationId", ""); contentHandler.endElement("", "TransactionHeaderRequest", ""); } else { // handle a response String transaction = NCPDPReference.getInstance().getTransactionName(header.substring(2, 4)); version = header.substring(0, 2); headerElementName = "NCPDP_" + version + "_" + transaction + "_Response"; contentHandler.startElement("", headerElementName, "", null); contentHandler.startElement("", "TransactionHeaderResponse", "", null); contentHandler.startElement("", "VersionReleaseNumber", "", null); contentHandler.characters(header.toCharArray(), 0, 2); contentHandler.endElement("", "VersionReleaseNumber", ""); contentHandler.startElement("", "TransactionCode", "", null); contentHandler.characters(header.toCharArray(), 2, 2); contentHandler.endElement("", "TransactionCode", ""); contentHandler.startElement("", "TransactionCount", "", null); contentHandler.characters(header.toCharArray(), 4, 1); contentHandler.endElement("", "TransactionCount", ""); contentHandler.startElement("", "HeaderResponseStatus", "", null); contentHandler.characters(header.toCharArray(), 5, 1); contentHandler.endElement("", "HeaderResponseStatus", ""); contentHandler.startElement("", "ServiceProviderIdQualifier", "", null); contentHandler.characters(header.toCharArray(), 6, 2); contentHandler.endElement("", "ServiceProviderIdQualifier", ""); contentHandler.startElement("", "ServiceProviderId", "", null); contentHandler.characters(header.toCharArray(), 8, 15); contentHandler.endElement("", "ServiceProviderId", ""); contentHandler.startElement("", "DateOfService", "", null); contentHandler.characters(header.toCharArray(), 23, 8); contentHandler.endElement("", "DateOfService", ""); contentHandler.endElement("", "TransactionHeaderResponse", ""); } } return headerElementName; }
From source file:CSVXMLReader.java
/** * Parse a CSV file. SAX events are delivered to the ContentHandler * that was registered via <code>setContentHandler</code>. * * @param input the comma separated values file to parse. *///from www . ja va 2s . c o m public void parse(InputSource input) throws IOException, SAXException { // if no handler is registered to receive events, don't bother // to parse the CSV file ContentHandler ch = getContentHandler(); if (ch == null) { return; } // convert the InputSource into a BufferedReader BufferedReader br = null; if (input.getCharacterStream() != null) { br = new BufferedReader(input.getCharacterStream()); } else if (input.getByteStream() != null) { br = new BufferedReader(new InputStreamReader(input.getByteStream())); } else if (input.getSystemId() != null) { java.net.URL url = new URL(input.getSystemId()); br = new BufferedReader(new InputStreamReader(url.openStream())); } else { throw new SAXException("Invalid InputSource object"); } ch.startDocument(); // emit <csvFile> ch.startElement("", "", "csvFile", EMPTY_ATTR); // read each line of the file until EOF is reached String curLine = null; while ((curLine = br.readLine()) != null) { curLine = curLine.trim(); if (curLine.length() > 0) { // create the <line> element ch.startElement("", "", "line", EMPTY_ATTR); // output data from this line parseLine(curLine, ch); // close the </line> element ch.endElement("", "", "line"); } } // emit </csvFile> ch.endElement("", "", "csvFile"); ch.endDocument(); }