2 December 2014

New DOM modules by Level (updated)

The W3C DOM specification is partitioned in a set of modules
Release versions of the DOM specification by W3C are called levels.
The table below shows which new modules appeared in each Level. Each higher level contains all modules of previous  levels.
Note: DOM Level 2 also introduces namespaces.

Level 1 Level 2 Level 3
Core XML Xpath
HTML Views Validation
Range Load and Save
Traversal Asynchronous Load
Stylesheets Mutation Name Events
CSS UI Events
CSS2 Text Events
Events Keyboard Events
User Interface Events
Mouse Events
Mutation Events
HTML Events

Modules can be optional and can have different W3C recommendation statusses. You can check if your implementation supports a module using DOMImplementation.hasFeature(module, level) or Node.isSupported(feature, version) . Append ".0" to the level number (e.g. "3.0" for Level 3). Use null or empty string if any level will do.

1 December 2014

Setting the JAXP validation file (updated)

A JAXP parser validates (version >= 1.2) by default using a DTD. Here are some variations that can be used when validating

  • If you are using SAX and obtained this parser from the SAXParserFactory:
  • javax.xml.parsers.SAXParser parser
    • To validated using a schema (xsd) add this line of code to your parser setup:
    • parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage", 
    • To specify the schema file in your code (for both DTD and XSD) add this line to your parser setup:
    • parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource", 
        new File("checkers.xsd")); 
                  SL-385.B: add to code 3-2 after line 17   
      • The source can be a File, InputStream, InputSource or an Object array containing these types
  • If you are using DOM, and you created this DocumentBuilderFactory instance :
  • javax.xml.parsers.DocumentBuilderFactory builder
    • To validated using a schema (xsd) add this line of code to your parser setup:
    • builder.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage", 
      • XMLConstants.W3C_XML_SCHEMA_NS_URI = http://www.w3.org/2001/XMLSchema
      • The corresponding constant for DTD (the default) in these cases is  
      • XMLConstants.XML_DTD_NS_URI = http://www.w3.org/TR/REC-xml
    • To specify the schema file in your code (for both DTD and XSD) add this line to your parser setup:
    • builder.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", 
        new File("checkers.xsd")); 

30 November 2014

NetBeans hints (updated)

Your first NetBeans project
  1. On the start page click the Learn & Discover tab
  2. Under Demo's and Tutorials select Java SE applications
  3. Start the Java Quick Start Tutorial 
NetBeans 7.4 Developer Guide
Keyboard shortcuts
  • view, search & change shortcuts: tools => options => keymap
    • You can set the keymap to a profile from another IDE (Eclipse, IntelliJ...) here as well.
  • help => keyboard shortcuts card. The pdf that is shown, lives in
    /nb/shortcuts.pdf. Some additional useful shortcuts:
    • Go to
      • to definition: CTRL click
        • to implementation: CTRL ALT click
    • Edit
      • Code completion
        • autocomplete popup (+ javadoc): CTRL SPACE
        • javadoc inline popup: CTRL SHIFT SPACE (ALT F1 to see in browser)
        • complete to recently typed word: CTRL k
      • Add semicolon at end of line:  CTRL ;
      • Add new line below + go there: SHIFT ENTER
    • View
      • fold/unfold code: CTRL –/+
      • members/herarchy of current selection: CTRL/ALT SHIFT F12
Running code
  • After you ran a program, and corrected some errors Rerun using the >> buttons.

  • The lighter double arrows below allow you to rerun with different parameters. You can change the arguments you run with in the Ant properties window.
  • Similar options are available for (individual) tests.
    • You can also launch an individual test by  positioning the cursor in the method and selecting "Run focused test" from the right click menu. 

Netbeans comes with plenty of sample projects for you to explore

HTTP Monitor

In the properties of your Server you can enable  the HTTP monitor.
When the server receives an HTTP request, NetBeans will show a window with all request/response details.
Additionally,  if you use the internal browser (or the NetBeans Chrome plugin) you can use Window > Web > Network Monitor to analyse Client side traffic using the network monitor (NetBeans >= 7.4).

24 November 2014

Windows: software to add (updated)

Current list of software I'm running:

22 November 2014

JAXP history (updated)

Java SE JAXP What’s new
DOM level 0: javascript in NS/IE v3
DOM level 1 (tree), SAX 1.0 (push)
DOM Level 2, SAX 2.0 (+validation), TrAX (XSLT)
Apache Crimson XMLReader
XML Schema
Apache Xerces2 XMLReader
DOM level 3, XML 1.1, XInclude 1.0, Xpath 1, Validator API
StAX (pull)
SE also bundles JAXB
- no separate JAXP anymore, moved into Java SE

More details on DOM levels.

Customer Journey

Slightly modified version of Oracle Customer Journey to emphasize the shift to "pay as you go" consumption from a presentation by Matthew Banks: