public SubjectName(Node nameNode) {
		Map<String, String> namespaces = XMLLabels.STANDARD_NAMESPACES;

		this.name = new NameDetails(nameNode);
		
		try {
			NodeList aliasNodes = Utilities.selectNodes(nameNode, "./m:Alias", namespaces);
			this.aliases = new ArrayList<NameDetails>();
			for(int i = 0; i < aliasNodes.getLength(); ++i) {
				this.aliases.add(new NameDetails(aliasNodes.item(i)));
			}
		} catch(XPathExpressionException e) {
			logger.warn("Unable to process the alias nodes.", e);
		}

		try {
			NodeList formerNameNodes = Utilities.selectNodes(nameNode, "./FormerName", namespaces);
			this.former = new ArrayList<NameDetails>();
			for(int i = 0; i < formerNameNodes.getLength(); ++i) {
				this.former.add(new NameDetails(formerNameNodes.item(i)));
			}
		} catch(XPathExpressionException e) {
			logger.warn("Unable to process the former name nodes.", e);
		}
	}