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}