01: /*
02: * GeoTools - OpenSource mapping toolkit
03: * http://geotools.org
04: * (C) 2004-2006, GeoTools Project Managment Committee (PMC)
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation;
09: * version 2.1 of the License.
10: *
11: * This library is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: * Lesser General Public License for more details.
15: */
16: package org.geotools.xml.schema;
17:
18: import java.net.URI;
19:
20: /**
21: * <p>
22: * This interface is intended to represent an XML Schema AttributeGroup. In
23: * many cases AttributeGroups may be optimized within complexTypes to remove
24: * the level of indirection. AttributeGroups remain in the interface set as
25: * there are publicly defined (externally visible) AttributeGroups defined in
26: * XML Schemas.
27: * </p>
28: *
29: * @author dzwiers www.refractions.net
30: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/xml/src/main/java/org/geotools/xml/schema/AttributeGroup.java $
31: */
32: public interface AttributeGroup {
33: /**
34: * <p>
35: * Represents the Namespace attribute of an AnyAttribute child occuring
36: * within this attributeGroup.
37: * </p>
38: *
39: */
40: public String getAnyAttributeNameSpace();
41:
42: /**
43: * <p>
44: * The list of attribute declared within this attributeGroup. Although we
45: * encourage the order of this list to follow the order the attributes
46: * were declared in, there is no such requirement.
47: * </p>
48: *
49: */
50: public Attribute[] getAttributes();
51:
52: /**
53: * <p>
54: * The Schema ID for this attributeGroup definition.
55: * </p>
56: *
57: */
58: public String getId();
59:
60: /**
61: * <p>
62: * The name of this Attribute Group declaration within the XML Schema
63: * </p>
64: *
65: */
66: public String getName();
67:
68: /**
69: * DOCUMENT ME!
70: *
71: */
72: public URI getNamespace();
73: }
|