/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2012, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.feature.wrapper;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
*
* Use this annotation on descendants of FeatureWrapper.
*
* It can indicate how fields map to objects in a Feature but describing their
* name including name and namespace. At class-level you can set namespace and
* separator to serve as defaults for the fields within the class. At
* field-level you can specify the local name and the namespace and separator
* (the last two will be inherited from a class-level XSDMapping if one is
* present).
*
*/
@Target({ ElementType.FIELD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface XSDMapping {
/**
* The XML Local name that the field corresponds to.
*/
String local() default "";
/**
* The XML namespace the field corresponds to. Define at class-level to set
* a default namespace for all contained fields.
*/
String namespace() default "";
/**
* The separator used in the full XML name. Define at class-level to set a
* default separator for all contained fields.
*/
String separator() default "";
/**
* You can use path to set an XPATH-style expression to indicate where a
* particular field should be found in a complex feature.
*/
String path() default "";
}