1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package gov.nist.secauto.metaschema.core.model.xml;
7   
8   import gov.nist.secauto.metaschema.core.MetaschemaConstants;
9   import gov.nist.secauto.metaschema.core.model.IAssemblyDefinition;
10  import gov.nist.secauto.metaschema.core.model.IAssemblyInstance;
11  import gov.nist.secauto.metaschema.core.model.IChoiceGroupInstance;
12  import gov.nist.secauto.metaschema.core.model.IChoiceInstance;
13  import gov.nist.secauto.metaschema.core.model.IFieldDefinition;
14  import gov.nist.secauto.metaschema.core.model.IFieldInstance;
15  import gov.nist.secauto.metaschema.core.model.IFlagDefinition;
16  import gov.nist.secauto.metaschema.core.model.IFlagInstance;
17  import gov.nist.secauto.metaschema.core.model.constraint.IAllowedValuesConstraint;
18  import gov.nist.secauto.metaschema.core.model.constraint.ICardinalityConstraint;
19  import gov.nist.secauto.metaschema.core.model.constraint.IExpectConstraint;
20  import gov.nist.secauto.metaschema.core.model.constraint.IIndexConstraint;
21  import gov.nist.secauto.metaschema.core.model.constraint.IIndexHasKeyConstraint;
22  import gov.nist.secauto.metaschema.core.model.constraint.IMatchesConstraint;
23  import gov.nist.secauto.metaschema.core.model.constraint.IUniqueConstraint;
24  import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
25  
26  import edu.umd.cs.findbugs.annotations.NonNull;
27  
28  /**
29   * Provides commonly used XML constants related to an XML-based Metaschema
30   * module.
31   */
32  // FIXME: integrate these into the model interfaces or generalize these outside
33  // of XML
34  @SuppressWarnings("PMD.DataClass")
35  public final class XmlModuleConstants {
36    /**
37     * The name of an {@link IAssemblyInstance} in XML.
38     */
39    @NonNull
40    public static final IEnhancedQName ASSEMBLY_QNAME
41        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "assembly");
42  
43    /**
44     * The name of an inline {@link IAssemblyDefinition} in XML.
45     */
46    @NonNull
47    public static final IEnhancedQName DEFINE_ASSEMBLY_QNAME
48        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "define-assembly");
49    /**
50     * The name of an {@link IFieldInstance} in XML.
51     */
52    @NonNull
53    public static final IEnhancedQName FIELD_QNAME = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "field");
54  
55    /**
56     * The name of an inline {@link IFieldDefinition} in XML.
57     */
58    @NonNull
59    public static final IEnhancedQName DEFINE_FIELD_QNAME
60        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "define-field");
61  
62    /**
63     * The name of an {@link IFlagInstance} in XML.
64     */
65    @NonNull
66    public static final IEnhancedQName FLAG_QNAME = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "flag");
67  
68    /**
69     * The name of an inline {@link IFlagDefinition} in XML.
70     */
71    @NonNull
72    public static final IEnhancedQName DEFINE_FLAG_QNAME
73        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "define-flag");
74  
75    /**
76     * The name of an {@link IChoiceInstance} in XML.
77     */
78    @NonNull
79    public static final IEnhancedQName CHOICE_QNAME
80        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "choice");
81  
82    /**
83     * The name of an {@link IChoiceGroupInstance} in XML.
84     */
85    @NonNull
86    public static final IEnhancedQName CHOICE_GROUP_QNAME
87        = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "choice-group");
88  
89    /**
90     * The name of the element that identifies the model of an
91     * {@link IAssemblyDefinition} in XML.
92     */
93    @NonNull
94    public static final IEnhancedQName MODEL_QNAME = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "model");
95  
96    /**
97     * The name of an {@link IAllowedValuesConstraint} constraint in XML.
98     */
99    @NonNull
100   public static final IEnhancedQName ALLOWED_VALUES_CONSTRAINT_QNAME
101       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "allowed-values");
102 
103   /**
104    * The name of an {@link IIndexHasKeyConstraint} constraint in XML.
105    */
106   @NonNull
107   public static final IEnhancedQName INDEX_HAS_KEY_CONSTRAINT_QNAME
108       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "index-has-key");
109 
110   /**
111    * The name of an {@link IMatchesConstraint} constraint in XML.
112    */
113   @NonNull
114   public static final IEnhancedQName MATCHES_CONSTRAINT_QNAME
115       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "matches");
116 
117   /**
118    * The name of an {@link IExpectConstraint} constraint in XML.
119    */
120   @NonNull
121   public static final IEnhancedQName EXPECT_CONSTRAINT_QNAME
122       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "expect");
123 
124   /**
125    * The name of an {@link IIndexConstraint} constraint in XML.
126    */
127   @NonNull
128   public static final IEnhancedQName INDEX_CONSTRAINT_QNAME
129       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "index");
130 
131   /**
132    * The name of an {@link IUniqueConstraint} constraint in XML.
133    */
134   @NonNull
135   public static final IEnhancedQName IS_UNIQUE_CONSTRAINT_QNAME
136       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "is-unique");
137 
138   /**
139    * The name of an {@link ICardinalityConstraint} constraint in XML.
140    */
141   @NonNull
142   public static final IEnhancedQName HAS_CARDINALITY_CONSTRAINT_QNAME
143       = IEnhancedQName.of(MetaschemaConstants.METASCHEMA_NAMESPACE, "has-cardinality");
144 
145   private XmlModuleConstants() {
146     // disable construction
147   }
148 }