1/*
2 * reserved comment block
3 * DO NOT REMOVE OR ALTER!
4 */
5/*
6 * Licensed to the Apache Software Foundation (ASF) under one or more
7 * contributor license agreements.  See the NOTICE file distributed with
8 * this work for additional information regarding copyright ownership.
9 * The ASF licenses this file to You under the Apache License, Version 2.0
10 * (the "License"); you may not use this file except in compliance with
11 * the License.  You may obtain a copy of the License at
12 *
13 *      http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 */
21
22package com.sun.org.apache.xerces.internal.xs;
23
24/**
25 * This interface represents the Wildcard schema component.
26 */
27public interface XSWildcard extends XSTerm {
28    // Namespace Constraint
29    /**
30     * Namespace Constraint: any namespace is allowed.
31     */
32    public static final short NSCONSTRAINT_ANY          = 1;
33    /**
34     * Namespace Constraint: namespaces in the list are not allowed.
35     */
36    public static final short NSCONSTRAINT_NOT          = 2;
37    /**
38     * Namespace Constraint: namespaces in the list are allowed.
39     */
40    public static final short NSCONSTRAINT_LIST         = 3;
41
42    // Process contents
43    /**
44     * There must be a top-level declaration for the item available, or the
45     * item must have an xsi:type, and the item must be valid as appropriate.
46     */
47    public static final short PC_STRICT                 = 1;
48    /**
49     * No constraints at all: the item must simply be well-formed XML.
50     */
51    public static final short PC_SKIP                   = 2;
52    /**
53     * If the item, or any items among its [children] is an element
54     * information item, has a uniquely determined declaration available, it
55     * must be valid with respect to that definition, that is, validate
56     * where you can and do not worry when you cannot.
57     */
58    public static final short PC_LAX                    = 3;
59
60    /**
61     * Namespace constraint: A constraint type: any, not, list.
62     */
63    public short getConstraintType();
64
65    /**
66     * Namespace constraint: For <code>constraintType</code>
67     * <code>NSCONSTRAINT_LIST</code>, the list contains allowed namespaces.
68     * For <code>constraintType</code> <code>NSCONSTRAINT_NOT</code>, the
69     * list contains disallowed namespaces. For <code>constraintType</code>
70     * <code>NSCONSTRAINT_ANY</code>, the <code>StringList</code> is empty.
71     */
72    public StringList getNsConstraintList();
73
74    /**
75     * [process contents]: one of skip, lax or strict. Valid constants values
76     * are: <code>PC_LAX</code>, <code>PC_SKIP</code> and
77     * <code>PC_STRICT</code>.
78     */
79    public short getProcessContents();
80
81    /**
82     * An annotation if it exists, otherwise <code>null</code>. If not null
83     * then the first [annotation] from the sequence of annotations.
84     */
85    public XSAnnotation getAnnotation();
86
87    /**
88     * A sequence of [annotations] or an empty <code>XSObjectList</code>.
89     */
90    public XSObjectList getAnnotations();
91}
92