<?xml version = "1.0" encoding = "UTF-8"?>
<!--

    Copyright (c) 2009, 2021 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Distribution License v. 1.0, which is available at
    http://www.eclipse.org/org/documents/edl-v10.php.

    SPDX-License-Identifier: BSD-3-Clause

-->

<xs:schema
   targetNamespace = "http://java.sun.com/xml/ns/jaxb"
   xmlns:jaxb = "http://java.sun.com/xml/ns/jaxb"
   xmlns:xs = "http://www.w3.org/2001/XMLSchema"
   elementFormDefault = "qualified"
   attributeFormDefault = "unqualified">
  <xs:annotation>
    <xs:documentation>
      Schema for JAXB 2.0 binding declarations.
    </xs:documentation>
  </xs:annotation>
  <xs:group name = "declaration">
    <xs:annotation>
      <xs:documentation>
        Model group that represents a binding declaration. Each new binding
        declaration added to the jaxb namespace that is not restricted to
        globalBindings should be added as a child element to this model group.
      </xs:documentation>
    </xs:annotation>
    <!-- each new binding declaration, not restricted to
           globalBindings, should be added here -->
    <xs:choice>
      <xs:element ref = "jaxb:globalBindings"/>
      <xs:element ref = "jaxb:schemaBindings"/>
      <xs:element ref = "jaxb:class"/>
      <xs:element ref = "jaxb:property"/>
      <xs:element ref = "jaxb:typesafeEnumClass"/>
      <xs:element ref = "jaxb:typesafeEnumMember"/>
      <xs:element ref = "jaxb:javaType"/>
      <xs:element ref = "jaxb:dom"/>
      <xs:element ref = "jaxb:inlineBinaryData"/>
      <xs:any namespace = "##other" processContents = "lax"/>
    </xs:choice>
  </xs:group>
  <xs:attribute name = "version" type="xs:token" >
    <xs:annotation>
      <xs:documentation>
        Used to specify the version of the binding schema on the schema element for
        inline annotations or jaxb:bindings for external binding.
      </xs:documentation>
    </xs:annotation>
  </xs:attribute>
  <xs:attributeGroup name = "propertyAttributes">
      <xs:annotation><xs:documentation>
        Attributes used for property customization. The attribute group can be
        referenced either from the globalBindings declaration or from the
        property declaration. The following defaults are defined by the JAXB
        specification in global scope only. Thus they apply when the
        propertyAttributes group is referenced from the globalBindings declaration
        but not when referenced from the property declaration.
          collectionType            a class that implements java.util.List.
          fixedAttributeAsConstantProperty  false
          enableFailFastCheck        false
          generateIsSetMethod        false
          optionalProperty           wrapper
          generateElementProperty    false
          attachmentRef              default
      </xs:documentation></xs:annotation>
    <xs:attribute name = "collectionType" type="jaxb:referenceCollectionType"/>
    <xs:attribute name = "fixedAttributeAsConstantProperty" type = "xs:boolean"/>
    <xs:attribute name = "enableFailFastCheck" type = "xs:boolean"/>
    <xs:attribute name = "generateIsSetMethod" type = "xs:boolean"/>
    <xs:attribute name = "optionalProperty">
      <xs:simpleType>
        <xs:restriction base="xs:NCName">
          <xs:enumeration value="wrapper"/>
          <xs:enumeration value="primitive"/>
          <xs:enumeration value="isSet"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
    <xs:attribute name = "generateElementProperty" type="xs:boolean"/>
    <xs:attribute name = "attachmentRef">
      <xs:simpleType>
        <xs:restriction base="xs:NCName">
          <xs:enumeration value="resolve"/>
          <xs:enumeration value="doNotResolve"/>
          <xs:enumeration value="default"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name = "XMLNameToJavaIdMappingDefaults">
    <xs:annotation>
      <xs:documentation>Customize XMLNames to Java id mapping
      </xs:documentation>
    </xs:annotation>
    <xs:attribute name = "underscoreBinding" default = "asWordSeparator" type = "jaxb:underscoreBindingType"/>
  </xs:attributeGroup>
  <xs:attributeGroup name = "typesafeEnumClassDefaults">
    <xs:attribute name = "typesafeEnumMemberName" default = "skipGeneration" type = "jaxb:typesafeEnumMemberNameType"/>
    <xs:attribute name = "typesafeEnumBase" default = "xs:string" type = "jaxb:typesafeEnumBaseType"/>
    <xs:attribute name = "typesafeEnumMaxMembers" type="xs:int" default="256"/>
  </xs:attributeGroup>
  <xs:element name = "globalBindings">
    <xs:annotation>
      <xs:documentation>Customization values defined in global scope.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence minOccurs = "0">
        <xs:element ref = "jaxb:javaType" minOccurs = "0" maxOccurs = "unbounded"/>
        <xs:element ref = "jaxb:serializable" minOccurs = "0"/>
        <xs:any namespace = "##other" processContents = "lax">
          <xs:annotation> 
            <xs:documentation>allows extension binding declarations to be specified.</xs:documentation>
          </xs:annotation>
        </xs:any>
      </xs:sequence>
      <xs:attributeGroup ref = "jaxb:XMLNameToJavaIdMappingDefaults"/>
      <xs:attributeGroup ref = "jaxb:typesafeEnumClassDefaults"/>
      <xs:attributeGroup ref = "jaxb:propertyAttributes"/>
      <xs:attribute name="generateValueClass" type="xs:boolean"
                    default= "true"/>
      <xs:attribute name="generateElementClass" type="xs:boolean"
                    default= "false"/>
      <xs:attribute name="mapSimpleTypeDef" type="xs:boolean"
                    default= "false"/>
      <xs:attribute name="localScoping" default= "nested">
        <xs:simpleType>
          <xs:restriction base="xs:NCName">
            <xs:enumeration value="nested"/>
            <xs:enumeration value="toplevel"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name = "enableJavaNamingConventions" default = "true" type = "xs:boolean"/>
      <!--  Removed from JAXB 2.0
            <xs:attribute name = "bindingStyle" default = "elementBinding" type = "jaxb:bindingStyleType"/>
      -->
      <xs:attribute name = "choiceContentProperty" default = "false" type = "xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name = "schemaBindings">
    <xs:annotation>
      <xs:documentation>Customization values with schema scope</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:all>
        <xs:element name = "package" type = "jaxb:packageType" minOccurs = "0"/>
        <xs:element name = "nameXmlTransform" type = "jaxb:nameXmlTransformType" minOccurs = "0"/>
      </xs:all>
    </xs:complexType>
  </xs:element>
  <xs:element name = "class">
    <xs:annotation>
      <xs:documentation>Customize interface and implementation class.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name = "javadoc" type = "xs:string" minOccurs = "0"/>
      </xs:sequence>
      <xs:attribute name = "name" type = "jaxb:javaIdentifierType">
        <xs:annotation>
          <xs:documentation>Java class name without package prefix.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name = "implClass" type = "jaxb:javaIdentifierType">
        <xs:annotation>
          <xs:documentation>Implementation class name including package prefix.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="generateValueClass" type="xs:boolean">
        <xs:annotation>
          <xs:documentation>Default value derived from [jaxb:globalBindings]@generateValueClass.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name = "property">
    <xs:annotation>
      <xs:documentation>Customize property.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:all>
        <xs:element name = "javadoc" type = "xs:string" minOccurs="0"/>
        <xs:element name = "baseType" type="jaxb:propertyBaseType" minOccurs="0"/>
      </xs:all>
      <xs:attribute name = "name" type = "jaxb:javaIdentifierType"/>
      <xs:attributeGroup ref = "jaxb:propertyAttributes"/>
    </xs:complexType>
  </xs:element>
  <xs:element name = "javaType">
    <xs:annotation>
      <xs:documentation>Data type conversions; overriding builtins</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name = "name" use = "required" type = "jaxb:javaIdentifierType">
        <xs:annotation>
          <xs:documentation>name of the java type to which xml type is to be bound.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name = "xmlType" type = "xs:QName">
        <xs:annotation>
          <xs:documentation> xml type to which java datatype has to be bound.Must be present when javaType is scoped to globalBindings</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name = "parseMethod" type = "jaxb:javaIdentifierType"/>
      <xs:attribute name = "printMethod" type = "jaxb:javaIdentifierType"/>
      <xs:attribute name = "hasNsContext" default = "false" type = "xs:boolean" >
        <xs:annotation>
          <xs:documentation>
            If true, the parsMethod and printMethod must reference a method
            signtature that has a second parameter of type NamespaceContext.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name = "typesafeEnumClass">
    <xs:annotation>
      <xs:documentation> Bind to a type safe enumeration class.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name = "javadoc" type = "xs:string" minOccurs = "0"/>
        <xs:element ref = "jaxb:typesafeEnumMember" minOccurs = "0" maxOccurs = "unbounded"/>
      </xs:sequence>
      <xs:attribute name = "name" type = "jaxb:javaIdentifierType"/>
      <xs:attribute name = "map" type = "xs:boolean" default = "true"/>
    </xs:complexType>
  </xs:element>
  <xs:element name = "typesafeEnumMember">
    <xs:annotation>
      <xs:documentation> Enumeration member name in a type safe enumeration class.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name = "javadoc" type = "xs:string" minOccurs = "0"/>
      </xs:sequence>
      <xs:attribute name = "value" type="xs:anySimpleType"/>
      <xs:attribute name = "name" use = "required" type = "jaxb:javaIdentifierType"/>
    </xs:complexType>
  </xs:element>

  <!-- TYPE DEFINITIONS -->

  <xs:complexType name = "propertyBaseType">
    <xs:all>
      <xs:element ref = "jaxb:javaType" minOccurs = "0"/>
    </xs:all>
    <xs:attribute name = "name" type = "jaxb:javaIdentifierType">
      <xs:annotation>
        <xs:documentation>
          The name attribute for [baseType] enables more precise control over the actual base type for a JAXB property. This customization enables specifying a more general base type than the property's default base type. The name attribute value must be a fully qualified Java class name. Additionally, this Java class must be a super interface/class of the default Java base type for the property. When the default base type is a primitive type, consider the default Java base type to be the Java wrapper class of that primitive type.This customization is useful to enable simple type substitution for a JAXB property representing with too restrictive of a default base type.
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>

  <!-- Removed in JAXB 2.0. modelGroupBinding no longer exists.
      <xs:simpleType name = "bindingStyleType">
      <xs:annotation><xs:documentation>Allows selection of a binding algorithm</xs:documentation></xs:annotation>
      <xs:restriction base = "xs:string">
        <xs:enumeration value = "elementBinding"/>
        <xs:enumeration value = "modelGroupBinding"/>
      </xs:restriction>
    </xs:simpleType>
  -->

  <xs:complexType name = "packageType">
    <xs:sequence>
      <xs:element name = "javadoc" type = "xs:string" minOccurs = "0"/>
    </xs:sequence>
    <xs:attribute name = "name" type = "jaxb:javaIdentifierType"/>
  </xs:complexType>
  <xs:simpleType name = "underscoreBindingType">
    <xs:annotation>
      <xs:documentation>Treate underscore  in XML Name to Java identifier mapping.</xs:documentation>
    </xs:annotation>
    <xs:restriction base = "xs:string">
      <xs:enumeration value = "asWordSeparator"/>
      <xs:enumeration value = "asCharInWord"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name = "typesafeEnumBaseType">
    <xs:annotation>
      <xs:documentation>
        XML types or types derived from them which have enumeration facet(s)
        which are be mapped to typesafeEnumClass by default.
        The following types cannot be specified in this list:
         "xsd:QName", "xsd:base64Binary", "xsd:hexBinary",
         "xsd:date", "xsd:time", "xsd:dateTime", "xsd:duration",
         "xsd:gDay", "xsd:gMonth", "xsd:Year", "xsd:gMonthDay", "xsd:YearMonth"
      </xs:documentation>
    </xs:annotation>
    <xs:list itemType = "xs:QName"/>
  </xs:simpleType>
  <xs:simpleType name = "typesafeEnumMemberNameType">
    <xs:annotation>
      <xs:documentation>Used to customize how to handle name collisions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base = "xs:string">
      <xs:enumeration value = "generateName"/>
      <xs:enumeration value = "generateError"/>
      <xs:enumeration value = "skipGeneration"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name = "javaIdentifierType">
    <xs:annotation>
      <xs:documentation>Placeholder type to indicate Legal Java identifier.</xs:documentation>
    </xs:annotation>
    <xs:list itemType = "xs:NCName"/>
  </xs:simpleType>
  <xs:complexType name = "nameXmlTransformRule">
    <xs:annotation>
      <xs:documentation>Rule to transform an Xml name into another Xml name</xs:documentation>
    </xs:annotation>
    <xs:attribute name = "prefix" type = "xs:string">
      <xs:annotation>
        <xs:documentation>prepend the string to QName.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name = "suffix" type = "xs:string">
      <xs:annotation>
        <xs:documentation>Append the string to QName.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name = "nameXmlTransformType">
    <xs:annotation>
      <xs:documentation>Allows transforming an xml name into another xml name. Use case UDDI 2.0 schema.</xs:documentation>
    </xs:annotation>
    <xs:all>
      <xs:element name = "typeName" type = "jaxb:nameXmlTransformRule" minOccurs = "0">
        <xs:annotation>
          <xs:documentation>Mapping rule for type definitions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name = "elementName" type = "jaxb:nameXmlTransformRule" minOccurs = "0">
        <xs:annotation>
          <xs:documentation>Mapping rule for elements</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name = "modelGroupName" type = "jaxb:nameXmlTransformRule" minOccurs = "0">
        <xs:annotation>
          <xs:documentation>Mapping rule  for model group</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name = "anonymousTypeName" type = "jaxb:nameXmlTransformRule" minOccurs = "0">
        <xs:annotation>
          <xs:documentation>Mapping rule for class names generated for an anonymous type.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:all>
  </xs:complexType>
  <xs:attribute name = "extensionBindingPrefixes">
    <xs:annotation>
      <xs:documentation>
        A binding compiler only processes this attribute when it occurs on an
        an instance of xs:schema element.  The value of this attribute is a
        whitespace-separated list of namespace prefixes.  The namespace bound
        to each of the prefixes is designated as a customization declaration
        namespace.
      </xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:list itemType = "xs:normalizedString"/>
    </xs:simpleType>
  </xs:attribute>
  <xs:element name = "bindings">
    <xs:annotation>
      <xs:documentation>
        Binding declaration(s) for a remote schema.
        If attribute node is set, the binding declaraions
        are associated with part of the remote schema
        designated by schemaLocation attribute. The node
        attribute identifies the node in the remote schema
        to associate the binding declaration(s) with.
      </xs:documentation>
    </xs:annotation>
    <!-- a <bindings> element can contain arbitrary number of binding declarations or nested <bindings> elements -->
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs = "0" maxOccurs = "unbounded">
          <xs:group ref = "jaxb:declaration"/>
          <xs:element ref = "jaxb:bindings"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name = "schemaLocation" type = "xs:anyURI">
        <xs:annotation>
          <xs:documentation>
            Location of the remote schema to associate binding declarations with.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name = "node" type = "xs:string">
        <xs:annotation>
          <xs:documentation>
            The value of the string is an XPATH 1.0 compliant string that
            resolves to a node in a remote schema to associate
            binding declarations with. The remote schema is specified
            by the schemaLocation attribute occuring in the current
            element or in a parent of this element.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name = "version" type = "xs:token">
        <xs:annotation>
          <xs:documentation>
            Used to indicate the version of binding declarations. Only valid on root level bindings element.
            Either this or "jaxb:version" attribute but not both may be specified.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute ref = "jaxb:version">
        <xs:annotation>
          <xs:documentation>
            Used to indicate the version of binding declarations. Only valid on root level bindings element.
            Either this attribute or "version" attribute but not both may be specified.
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="referenceCollectionType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="indexed"/>
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="jaxb:javaIdentifierType"/>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:element name="dom">
    <xs:complexType>
      <xs:attribute name = "type" type="xs:NCName" default="w3c">
        <xs:annotation>
          <xs:documentation>Specify DOM API to bind to JAXB property to.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="inlineBinaryData">
    <xs:annotation>
      <xs:documentation>Disable MTOM/XOP encoding for this binary data. Annotation can be placed on a type defintion that derives from a W3C XSD binary data type or on an element that has a type that is or derives from a W3C XSD binary data type.</xs:documentation>
    </xs:annotation>
  </xs:element>
  <xs:element name = "serializable">
    <xs:complexType>
      <xs:attribute name="uid" type="xs:long" default="1"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

