Stuff

XML Hammer 1.0 rc-3 Released

I am very pleased to announce the release of the third release-candidate of version 1.0 of the XML Hammer application.

The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.

This release fixes all previously outstanding issues and also adds a native Windows launcher.

The bugs fixed include major issues in the startup scripts, confusing 'internal DTD' terminology and closing of output streams.

To download this version please go to:
http://www.xmlhammer.org/downloads.html

There are currently no known issues, to report an issue however you can report this either directly to me, send an e-mail to the mailing-lists or by using the issue tracking system.

Labels: , , , ,

XML Hammer 1.0 rc-2 Released

I am very pleased to announce the release of the second release-candidate of version 1.0 of the XML Hammer application.

The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.

This release fixes all previously outstanding issues and also adds out-of-the-box support for RelaxNG schema validation.

The main bugs fixed are:

  • Improved console output,
  • .sh file no longer calls javaw,
  • again possible to add items to the class-path.

To download this version please go to:
http://www.xmlhammer.org/downloads.html

There are currently no known issues, to report an issue however you can report this either directly to me, send an e-mail to the mailing-lists or by using the issue tracking system.

Labels: , , , ,

How to Validate XML using Java

Added an article about how to Validate XML using Java with example source-code on how to configure SAX, DOM, dom4j and XOM to validate XML Documents with DTD and Schema(s).

Labels: , , , , , , , ,

Trashing JAXP

IBM Developer Works has released an article discussing (trashing) JAXP.

http://www.ibm.com/developerworks/xml/library/x-xjavaforum4.html?ca=drs-

I don't think I really agree with the author's 'reasoning' ...

He states in the first part of the article that: "JAXP was initially intended merely to provide convenience and vendor-neutrality to SAX and DOM". The strange thing is that this is exactly what it is currently, except for adding Schema validation functionality (which is quite handy), the DOM and SAX functionality has hardly changed from the initial release.

In the second part the author writes: "Talking about a ContentHandler or a DOMImplementation is largely a thing for the past, or at least relegated to pretty high-end Java and XML programmers". This is also not the case, JAXP does not wrap any DOM or SAX functionality, the user still needs to create a ContentHandler to be able to process SAX events and the user will still need to know about Document, Element and Attr nodes.

The conclusion is as expected: "I think that JAXP has obscured the value of learning SAX and the DOM APIs on their own, without really providing significant value in return."

Even though I don't think JAXP is perfect and the API might not always have been defined at the right level (although I cannot think of any examples), the arguments that the author made to reach this conclusion are simply wrong.

Labels: , , ,

Interchanging behavioral information

Sean McGrath has again released a very good article where his alter ego Master Foo gets asked to give his opinion on these two document interchange formats. Please read the article first before continuing:
http://www.itworld.com/Tech/2327/nlsebiz070626/

Master Foo concludes that it is not possible to create a document interchange format that captures all information and can be interpreted correctly by two different applications.

Master Foo is however talking about a 'document' interchange format, more precisely the OOXML vs ODF debate and as always Master Foo in his serene wisdom is right when it comes to interchanging this type of document because a lot of the information in these documents describes the behavior of the data instead of the actual structure and behavior is very difficult (if not impossible) to interchange. To interchange documents with behavior correctly, you will, as Master Foo highlighted, most of the time need a reference implementation.

However this type of document should not be confused with documents that do not contain behavioral information and only contain information about structure and state. These documents can normally be interchanged (and specified) very well.

Labels: , , , ,

More on default namespaces

Jeni Tennison has written an article about the use of default namespaces using XPath 1.0 and 2.0 in either XSLT or XQuery.

The main issue being that XPath 2.0 allows (maybe a little confusing) applications to specify a default namespace for elements. For more information see:

http://www.jenitennison.com/blog/node/36

Labels: , ,

XNGR XML Browser 2.0 Features

I am in the process of updating the XNGR XML Browser to be more JAXP, XML and UI guidelines compliant.

At the same time I hope to be able to provide the following new functionality:

  • Associate extension-points with different Node types.
  • Provide Actions without having to provide the Service extension-point.
  • Use a more static way to define a Service or Action.
  • Besides Services or Actions also provide other extension-points like Filters.
  • Allow the creation of different Browser-types which can make use of the same extension points. (bookmarks, explorer, database)

Besides the new functionality, the current components will also need to be updated.

The work is currently still in a very early stage, so any suggestions are more than welcome.

Labels: ,

XML Hammer 1.0 rc-1 Released

I am very pleased to announce (a little bit later again) the release of the first release-candidate of the XML Hammer application.

This is a major bug fix release, the main new features are:

  • comprehensive help documentation,
  • deactivate and activate properties,
  • easier to use validation functionality,

the main bugs fixed are:

  • selecting items in combo-boxes using keys,
  • issues when performing XPath searches,
  • module initialization error handling,

The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.

To download this version please go to: http://www.xmlhammer.org/downloads.html

Labels: , , ,

XML Hammer 1.0 beta-2 Released

I am very pleased to anounce (a little bit later than promised) the release of XML Hammer version 1.0 beta-2.

This is a major feature release, the main new features are:

  • Live, 'as you type' error information for XPath searches, Regular Expression and other fields,
  • 'Find in' output, open files in external applications (editors/browser),
  • run projects 'head-less' from the command-line,
  • new project wizards,
  • support for XML Catalogs,
  • different look and feels and more ...

The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.

To download this version please go to:
http://www.xmlhammer.org/downloads.html

Labels: , ,

Catalog Resolver API

Okay, I'm not happy with everything I've written and surely have to update the xngr xml browser code sometime in the near future however ...

Somebody more intelligent than me should have a good look at the (Catalog) Resolver 1.1 API. After implementing version 1.0 before, it again has taken me a couple of hours of pure pain to figure out how to use it this time around.

Anyway for anybody who wants to use the Resolver 1.1 without using the default 'properties file' configuration, try the following:

List<String> files = getFiles();
StringBuilder builder = new StringBuilder();
        
for (String file : files) {
 builder.append(file);
 builder.append(";");
}
      
CatalogManager.getStaticManager().setIgnoreMissingProperties(true);
CatalogManager.getStaticManager().setUseStaticCatalog(false);
CatalogManager.getStaticManager().setPreferPublic(true);
CatalogManager.getStaticManager().setCatalogFiles(builder.toString());

Labels:

JAXP Articles

Elliotte Rusty Harold has written two (as always) excellent articles about how to use the Java API for XML Processing (JAXP).

The first article covers the XPathFactory part of the API and highlights issues like setting namespace prefix mappings.
The Java XPath API

The second article describes the validation API introduced in JAXP 1.3 and also gives an overview of how to get type information for specific elements and attributes.
The Java XML Validation API

Labels: ,

Updated the JAXP Implementation list

Updated the list of JAXP Factory Implementations.

Added SchemaFactory implementations, removed the SAXParserFactory implementation for Saxon B and Saxon SA and updated the current versions.

Labels: ,

XML Hammer 1.0 beta-1 Released

Finally finished the first beta release of the XML Hammer tool. After half a year trying to come up with the best User Interface, have settled for the current incarnation.

The XML Hammer application is a free and open-source tool that simplifies elementary XML actions like checking for well-formedness, validation, transformation and xpath searches using any JAXP implementation.

To download this version please go to:
http://www.xmlhammer.org/downloads.html

Any suggestions are more than welcome.

Labels: , ,

Fixed Bounce XMLEditorKit Syntax Highlighting

Fixed the issue reported by Ruben Malchow that Syntax Highlighting in the XMLEditorKit for the Bounce project does not work correctly with XML content that differs from the XML used for the example.

Labels:

XPath and Default Namespaces

Added an article about XPath and Default Namespaces describing how to handle XPath expressions when using default namespaces in your XML document. Illustrated using examples for 3 popular XPath implementations: Jaxen (dom4j/XOM/JDOM), the JAXP XPathFactory and XSLT.

Labels: , ,

XPath 1.0 Functions

Added a reference list of XPath 1.0 Functions.

Labels: ,

JAXP Factory Implementation List

Added a (hopefully complete) reference list of JAXP Factory Implementations available.

Labels: ,

XML APIs Presentation Changes (v1.1)

Added TransformationFactory, Source and Result method descriptions. Added examples validating using the SAXParserFactory and using the DocumentBuilderFactory for both XML Schema and DTD. Updated JAXB adding JaxMe.

Labels: , ,