# ABW_0_node.properties Mon Jul 03 16:11:36 EDT 2006
# Definition of "Aruba" at Administration Level 0 (Country)
#/*******************************************************************************
# * Copyright (c) 2006 IBM Corporation and others.
# * All rights reserved. This program and the accompanying materials
# * are made available under the terms of the Eclipse Public License v1.0
# * which accompanies this distribution, and is available at
# * http://www.eclipse.org/legal/epl-v10.html
# *
# * Contributors:
# *     IBM Corporation - initial API and implementation
# *******************************************************************************/

# This is the name of the class that will interpret the rest of the file's contents
RECORD_CLASSNAME = org.eclipse.stem.internal.data.geography.specifications.CountryNodePropertyFileSpecification
# The ISO-3166-1 alpha3 code for the country
ISOKEY = ABW

# The administration level of the graph data
ADMIN_LEVEL = 0

# This is the date range for which the values in this file are valid
# See http://purl.org/dc/terms/1.1/valid
VALID = start=1900-01-01;

# This is the source of the data
SOURCE = http://www.iso.org/iso/home.htm

# The file that contains the latitude/longitude polygon data for the node
SPATIAL_URI = platform:/plugin/org.eclipse.stem.data.geography/resources/data/geo/country/ABW/ABW_0_MAP.xml

# Format: Code = Name, ISO-3166-1 numeric code, Two letter code
ABW = Aruba, 533, AW