public void parse(Reader reader) throws IOException, SAXException { parse(reader instanceof BufferedReader ? (BufferedReader) reader : new BufferedReader(reader)); }
private void startDocument() throws SAXException { ch.startDocument(); addAttribute("xml-space", "preserved"); startElement("hl7"); }
private void endDocument() throws SAXException { endElement("hl7"); ch.endDocument(); }
public void parse(BufferedReader reader) throws IOException, SAXException { startDocument(); delimiters = Delimiter.DEFAULT; String line; String[] tks; int tkindex = 0; if (isHeaderSegment(line)) { if (line.length() < 8) throw new IOException ("Header Segment to short: " + line); setDelimiters(line.substring(3, 8)); tks = tokenize(line.substring(8)); } else { tks = tokenize(line); seg = tks[tkindex++]; startElement(seg); while (tkindex < tks.length) { String tk = tks[tkindex++]; Delimiter d = delimiter(tk); if (d != null) { if (d != Delimiter.escape) { endElement(d); startElement(d); continue; int e = escapeIndex(tk); if (e >= 0) { ch.characters(delimiters.toCharArray(), e, 1);
public void parse(InputStream is) throws IOException, TransformerConfigurationException, SAXException { byte[] buf = new byte[256]; int len = is.read(buf); HL7Segment msh = HL7Segment.parseMSH(buf, buf.length); String charsetName = HL7Charset.toCharsetName(msh.getField(17, charset)); Reader reader = new InputStreamReader( new SequenceInputStream( new ByteArrayInputStream(buf, 0, len), is), charsetName); TransformerHandler th = getTransformerHandler(); th.getTransformer().setOutputProperty(OutputKeys.INDENT, indent ? "yes" : "no"); th.setResult(new StreamResult(System.out)); HL7Parser hl7Parser = new HL7Parser(th); hl7Parser.setIncludeNamespaceDeclaration(includeNamespaceDeclaration); hl7Parser.parse(reader); }
private byte[] xslt(UnparsedHL7Message msg) throws Exception { String charsetName = HL7Charset.toCharsetName(msg.msh().getField(17, charset)); ByteArrayOutputStream out = new ByteArrayOutputStream(); TransformerHandler th = factory.newTransformerHandler(tpls); Transformer t = th.getTransformer(); t.setParameter("MessageControlID", HL7Segment.nextMessageControlID()); t.setParameter("DateTimeOfMessage", HL7Segment.timeStamp(new Date())); if (xsltParams != null) for (int i = 1; i < xsltParams.length; i++, i++) t.setParameter(xsltParams[i-1], xsltParams[i]); th.setResult(new SAXResult(new HL7ContentHandler( new OutputStreamWriter(out, charsetName)))); new HL7Parser(th).parse(new InputStreamReader( new ByteArrayInputStream(msg.data()), charsetName)); return out.toByteArray(); }
private void setDelimiters(String delimiters) { Delimiter[] a = Delimiter.values(); for (int i = 0; i < a.length; i++) addAttribute(a[i].attribute(), delimiters.substring(i,i+1)); this.delimiters = delimiters; }
public void parse(InputStream is) throws IOException, TransformerConfigurationException, SAXException { byte[] buf = new byte[256]; int len = is.read(buf); HL7Segment msh = HL7Segment.parseMSH(buf, buf.length); String charsetName = HL7Charset.toCharsetName(msh.getField(17, charset)); Reader reader = new InputStreamReader( new SequenceInputStream( new ByteArrayInputStream(buf, 0, len), is), charsetName); TransformerHandler th = getTransformerHandler(); th.getTransformer().setOutputProperty(OutputKeys.INDENT, indent ? "yes" : "no"); th.setResult(new StreamResult(System.out)); HL7Parser hl7Parser = new HL7Parser(th); hl7Parser.setIncludeNamespaceDeclaration(includeNamespaceDeclaration); hl7Parser.parse(reader); }
private byte[] xslt(UnparsedHL7Message msg) throws Exception { String charsetName = HL7Charset.toCharsetName(msg.msh().getField(17, charset)); ByteArrayOutputStream out = new ByteArrayOutputStream(); TransformerHandler th = factory.newTransformerHandler(tpls); Transformer t = th.getTransformer(); t.setParameter("MessageControlID", HL7Segment.nextMessageControlID()); t.setParameter("DateTimeOfMessage", HL7Segment.timeStamp(new Date())); if (xsltParams != null) for (int i = 1; i < xsltParams.length; i++, i++) t.setParameter(xsltParams[i-1], xsltParams[i]); th.setResult(new SAXResult(new HL7ContentHandler( new OutputStreamWriter(out, charsetName)))); new HL7Parser(th).parse(new InputStreamReader( new ByteArrayInputStream(msg.data()), charsetName)); return out.toByteArray(); }
private void endElement(Delimiter delimiter) throws SAXException { Delimiter d = Delimiter.escape; do if (open.remove(d = d.parent())) endElement(d.name()); while (d != delimiter); }