XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] Best way to create an XML document

On Sun, Apr 13, 2008 at 10:16 PM, Michael Kay <mike@saxonica.com> wrote:
>Or it might be simpler to put the serialized output
>  through an XML parser if you need to check it.

I tried this approach with Xalan/Xerces, and following are my findings ...

public static void main(String[] args) {
   try {
      TransformerFactoryImpl tfi = new TransformerFactoryImpl();
      TransformerHandler tHandler = tfi.newTransformerHandler();
      tHandler.getTransformer().setOutputProperty(OutputKeys.INDENT, "yes");
      String output = "output.xml";
      tHandler.setResult(new StreamResult(new File(output)));
      tHandler.startDocument();
      tHandler.startElement("", "x", "x", null);
      AttributesImpl attrs = new AttributesImpl();
      attrs.addAttribute("", "attr1","attr1", "", "123");
      attrs.addAttribute("", "attr2","attr2", "", "456");
      tHandler.startElement("", "y", "y", attrs);
      tHandler.startElement("", "z", "z", null);
      tHandler.endElement("", "z", "z");
      tHandler.endElement("", "y", "y");
      tHandler.endElement("", "x", "x");
      tHandler.endDocument();

      if (isWellFormed(output)) {
	Sstem.out.println("Generation of XML document is fine.");
	/*
	   do something with the generated file
	*/
      }
      else {
	System.out.println("Generated XML document is not well-formed.");
      }
    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
 }

 private static boolean isWellFormed(String output) {
   try {
      XMLReaderAdapter xra = new XMLReaderAdapter();
      InputSource is = new InputSource(new FileInputStream(output));
      xra.parse(is);
      return true;
    }
    catch(Exception ex) {
      return false;
    }
  }

This code post processes the serialized XML output (i.e., check for
well-formedness).

I think this makes me happy :)

-- 
Regards,
Mukul Gandhi


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS