001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package gov.nist.secauto.metaschema.databind.model.annotations;
007
008import static java.lang.annotation.ElementType.PACKAGE;
009import static java.lang.annotation.RetentionPolicy.RUNTIME;
010
011import java.lang.annotation.Retention;
012import java.lang.annotation.Target;
013
014/**
015 * This annotation provides package-level Module information.
016 */
017@Retention(RUNTIME)
018@Target(PACKAGE)
019public @interface XmlSchema {
020  /**
021   * The default value of a schema location, which indicates that no schema will
022   * be associated.
023   * <p>
024   * The value "##none" was chosen because ## is not a valid sequence in
025   * xs:anyURI.
026   */
027  String NO_LOCATION = ModelUtil.NO_STRING_VALUE;
028
029  /**
030   * Defines the XML namespace URI and prefix to use for this model. If a prefix
031   * is not provided, the XML prefix will be auto-generated.
032   *
033   * @return an array of namespace definitions
034   */
035  XmlNs[] xmlns() default {};
036
037  /**
038   * Name of the XML namespace.
039   * <p>
040   * If the value is "##none", then there is no prefix defined.
041   *
042   * @return a namespace string in the form of a URI
043   */
044  String namespace() default ModelUtil.NO_STRING_VALUE;
045
046  /**
047   * The location of the associated XML schema.
048   *
049   * @return a location string in the form of a URI
050   */
051  String xmlSchemaLocation() default NO_LOCATION;
052
053  /**
054   * The location of the associated JSON schema.
055   *
056   * @return a location string in the form of a URI
057   */
058  String jsonSchemaLocation() default NO_LOCATION;
059
060  /**
061   * Get the default XML element form.
062   *
063   * @return the XML element form
064   */
065  XmlNsForm xmlElementFormDefault() default XmlNsForm.UNSET;
066
067  /**
068   * Get the default XML attribute form.
069   *
070   * @return the XML attribute form
071   */
072  XmlNsForm xmlAttributeFormDefault() default XmlNsForm.UNSET;
073}