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 the Group construct within XML
23: * Schemas.
24: * </p>
25: *
26: * <p>
27: * In many situations it is recommended that groups be flatened out to their
28: * child declaration, removing the additional layer of indirection. Although
29: * this optimization is nice, it is imposible to complete this all the time,
30: * as xml schemas may include publicly viewable Group definitions.
31: * </p>
32: *
33: * @author dzwiers www.refractions.net
34: * @source $URL: http://svn.geotools.org/geotools/tags/2.4.1/modules/library/xml/src/main/java/org/geotools/xml/schema/Group.java $
35: */
36: public interface Group extends ElementGrouping {
37: /**
38: * <p>
39: * Returns the Child Schema element (Choice or Sequence) declaring valid
40: * element sequences for this group.
41: * </p>
42: *
43: */
44: public ElementGrouping getChild();
45:
46: /**
47: * <p>
48: * The Group's declaration object id.
49: * </p>
50: *
51: */
52: public String getId();
53:
54: /**
55: * <p>
56: * The maximum number of times this group may appear in the instance
57: * document.
58: * </p>
59: *
60: */
61: public int getMaxOccurs();
62:
63: /**
64: * <p>
65: * The minimum number of times this group may appear in the instance
66: * document.
67: * </p>
68: *
69: */
70: public int getMinOccurs();
71:
72: /**
73: * <p>
74: * The group's name in the Schema document
75: * </p>
76: *
77: */
78: public String getName();
79:
80: /**
81: * DOCUMENT ME!
82: *
83: */
84: public URI getNamespace();
85: }
|