# Class Namespacing

java.lang.Object
uk.ac.starlink.votable.Namespacing

public abstract class Namespacing extends Object
Determines how namespaces are handled in VOTable documents. The static `getInstance()` method provides an object which encapsulates the default namespacing policy.

Since:
  1 Sep 2009
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final Namespacing`
`LAX`
Interpret likely-looking elements in any namespace as VOTable ones.
`static final Namespacing`
`NONE`
No namespace awareness; any namespacing will probably confuse parser.
`static final String`
`POLICY_PROP`
Name of system property which determines namespacing policy used.
`static final Namespacing`
`STRICT`
Only elements in namespaces with VOTable URIs are significant.

## Constructor Summary

Constructors
Constructor
Description
`Namespacing(String name)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`configureSAXParserFactory(SAXParserFactory spfact)`
Performs any necessary configuration of the namespacing capabilities of a given parser factory for use with this namespacing policy.
`static Namespacing`
`getInstance()`
Returns the default Namespacing instance.
`abstract String`
`getVOTagName(String namespaceURI, String localName, String qName)`
Returns the VOTable tagname for an XML element as encountered by a SAX parser.
`String`
`getVOTagName(Element el)`
Returns the VOTable tagname for an XML element as present in a DOM.
`void`
`setInstance(Namespacing instance)`
Sets the default instance.
`String`
`toString()`
Returns the name of this namespacing policy.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

## Field Details

### POLICY_PROP

public static final String POLICY_PROP
Name of system property which determines namespacing policy used. Property name is "votable.namespacing". Possible values are "`none`", "`lax`", "`strict`" or the classname of a `Namespacing` implementation which has a no-arg constructor.

See Also:
  - Constant Field Values

### NONE

public static final Namespacing NONE
No namespace awareness; any namespacing will probably confuse parser.

### LAX

public static final Namespacing LAX
Interpret likely-looking elements in any namespace as VOTable ones.

### STRICT

public static final Namespacing STRICT
Only elements in namespaces with VOTable URIs are significant.

## Constructor Details

### Namespacing

public Namespacing(String name)
Constructor.

Parameters:
  `name` - concise human-readable name describing this policy

## Method Details

### configureSAXParserFactory

public abstract void configureSAXParserFactory(SAXParserFactory spfact)
Performs any necessary configuration of the namespacing capabilities of a given parser factory for use with this namespacing policy.

Parameters:
  `spfact` - factory to configure

### getVOTagName

public abstract String getVOTagName(String namespaceURI, String localName, String qName)
Returns the VOTable tagname for an XML element as encountered by a SAX parser. The return value is a bare string which may be compared to one of the VOTable element names ignoring namespaces; for instance a return value of "TABLE" indicates that this is a VOTable TABLE element.

The parameters have the same meanings, and may or may not be present as for, those in `ContentHandler.startElement(String, String, String, Attributes)`.

Parameters:
  `namespaceURI` - namespace URI
  `localName` - local name
  `qName` - qualified name
Returns:
  element name in VOTable namespace

### getVOTagName

public String getVOTagName(Element el)
Returns the VOTable tagname for an XML element as present in a DOM. The return value is a bare string which may be compared to one of the VOTable element names ignoring namespaces; for instance a return value of "TABLE" indicates that this is a VOTable TABLE element.

Parameters:
  `el` - element
Returns:
  element name in VOTable namespace

### toString

public String toString()
Returns the name of this namespacing policy.

Overrides:
  `toString` in class `Object`
Returns:
  name

### getInstance

public static Namespacing getInstance()
Returns the default Namespacing instance. The default value is determined by examining the `POLICY_PROP` system property. If not otherwise set the default is currently `LAX`.

Returns:
  namespacing instance

### setInstance

public void setInstance(Namespacing instance)
Sets the default instance.

Parameters:
  `instance` - new default instance