<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.smpte-ra.org/schemas/2034-1/2014/AXF"
    targetNamespace="http://www.smpte-ra.org/schemas/2034-1/2014/AXF" elementFormDefault="unqualified">

    <xs:simpleType name="structure_version">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]+(.[0-9]+)+"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="UUID">
        <xs:restriction base="xs:string">
            <xs:pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="AXFObject" abstract="true">
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="version" type="tns:structure_version" use="required">
            <xs:annotation>
                <xs:documentation>
                    Identify the version of the Medium Identifier data type structure to which it applies.  
                    A Medium Identifier Structure Version comprises two parts: major and minor version numbers in 
                    the form: “major.minor”.  Structures sharing the same major version have implied 
                    compatibility; structures having the same major version but different minor version numbers 
                    indicate the presence of compatible changes.   The Medium Identifier Structure Version 
                    applicable to this issue of the standard is 1.0.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:anyAttribute/>
    </xs:complexType>

    <xs:complexType name="MediumIdentifier">
        <xs:annotation>
            <xs:documentation>
                The Medium Identifier data structure provides information that identifies the medium and its characteristics.
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:UUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies an immutable unique identifier for the medium on which the Medium Identifier is recorded.  The identifier is reused for the life of the medium, even if the medium is reformatted.  The UUID is generated using the methods defined in RFC 4122 or ISO/IEC 9834-8.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:MediumLabel" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                The business identifier of the medium, such as the value of a barcode label applied to the medium, a disk array volume label, a solid state memory device label, or some other identifying data item specific to the medium at the time of its preparation.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:BlockSize" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the size, in bytes, of the data blocks recorded on the medium.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreparedTime" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the date and time that the medium was last prepared.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Application" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the application that last prepared the medium.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Identifiers" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies zero or more identifiers defined by the author of the Medium Identifier. (This field provides space for user-defined identifiers)
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:MediumPreparer" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that last prepared the medium.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:MediumOwner" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that owned the medium at the time it was last prepared.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ObjectIndex">
        <xs:annotation>
            <xs:documentation>
                The Object Index data structure provides information about the Archive Objects on the medium and their physical block locations.
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:MediumIdentifier">
                <xs:sequence>
                    <xs:element ref="tns:CreatedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that first created this Object Index.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ModifiedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that last modified this Object Index.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectCount" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the number of Object Footers contained in the Object Footer Collection.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectFooterCollection" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                A collection containing copies of all of the valid, non-deprecated Object Footers that reside on the medium at the time the containing Object Index was created.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FragmentFooterCollection" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                A collection containing copies of all of the valid, non-deprecated Object Fragment Footers that reside on the medium at the time the containing Object Index was created.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ObjectHeader">
        <xs:annotation>
            <xs:documentation>
                The Object Header data structure provides information about the Archive Object.  The Object Header is an optional data structure that complements the Object Footer.
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:UUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies an immutable unique identifier for this Archive Object. The UUID is generated using the methods defined in RFC 4122 or ISO/IEC 9834-8.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ChunkSize" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the size in bytes of the data chunks recorded within this Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CreationTime" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the date and time at which the Archive Object was written for the first instance and shall not change for subsequent instances (copies). 
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:InstanceTime" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the date and time at which this Archive Object instance was first prepared. 
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CollectedSetSequence" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a non-negative integer index of the Archive Object within an Archive Object Collected Set.  The index begins with 1 and increment by 1 for each Archive Object added to the Archive Object Collected Set.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CollectedSetUUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies an immutable unique identifier for the Archive Object Collected Set of which the current Archive Object is a part. The Collected Set UUID is set equal to the UUID of the first Archive Object in the Archive Object Collected Set, i.e., the Archive Object with the lowest Collected Set Sequence Number.  When an Archive Object is created that is not part of an Archive Object Collected Set, its Collected Set UUID is equal the UUID of the Archive Object, and its Collected Set Sequence number is set to 1.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousObjectIndexPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the last Object Index on the medium that is preceding the current Archive Object.     
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FooterPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the relative chuck position from the beginning of the Archive Object pointing to the Object Footer structure for the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousHeaderPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Header structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousFooterPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Footer structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Application" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Defines the application information for the application that first created this Archive Object.  The application information should be the name and version of the software application that first prepared the medium
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Identifiers" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies zero or more identifiers defined by the author of the Archive Object. (This field provides space for user-defined identifiers.)
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectOwner" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that maintains ownership of the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ContentOwner" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that maintains ownership of the content stored within the Archive Objects.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CreatedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the information of the entity that first created this Object Header.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ModifiedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the information of the entity that last modified this Object Header.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectDescription" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a human readable description that describes the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectName" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a human readable name for the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ChecksumTypes" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the list of checksum algoithms used within the File Tree.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FileTree" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the hierarchical structure of Files and Folders.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ObjectFooter">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:UUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies an immutable unique identifier for this Archive Object. The UUID is generated using the methods defined in RFC 4122 or ISO/IEC 9834-8.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ChunkSize" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the size in bytes of the data chunks recorded within this Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CreationTime" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the date and time at which the Archive Object was written for the first instance and shall not change for subsequent instances (copies). 
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:InstanceTime" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Indicates the date and time at which this Archive Object was first prepared. 
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CollectedSetSequence" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a non-negative integer index of the Archive Object within an Archive Object Collected Set.  The index begins with 1 and increment by 1 for each Archive Object added to the Archive Object Collected Set.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CollectedSetUUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies an immutable unique identifier for the Archive Object Collected Set of which the current Archive Object is a part. The Collected Set UUID is set equal to the UUID of the first Archive Object in the Archive Object Collected Set, i.e., the Archive Object with the lowest Collected Set Sequence Number.  When an Archive Object is created that is not part of an Archive Object Collected Set, its Collected Set UUID is equal the UUID of the Archive Object, and its Collected Set Sequence number is set to 1.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousObjectIndexPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the last Object Index on the medium that is preceding the current Archive Object.     
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FooterPosition" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the relative chunk position from the beginning of the Archive Object pointing to the Object Footer structure for the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:HeaderPosition" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the binary structure container wrapping the Object Header of the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousHeaderPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Header structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousFooterPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Footer structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Application" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Defines the application information for the application that first created this Archive Object.  The application information should be the name and version of the software application that first prepared the medium
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Identifiers" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies zero or more identifiers defined by the author of the Archive Object. (This field provides space for user-defined identifiers.)
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectOwner" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that maintains ownership of the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ContentOwner" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the Entity that maintains ownership of the content stored within the Archive Objects.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:CreatedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the information of the entity that first created this Object Header.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ModifiedBy" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Identifies the information of the entity that last modified this Object Header.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectDescription" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a human readable description that describes the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ObjectName" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a human readable name for the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ChecksumTypes" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the list of checksum algoithms used within the File Tree.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FileTree" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the hierarchical structure of Files and Folders.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="FileFooter">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:FilePath" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the path to the file relative to the root of the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:File" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the file information.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:SourceFile" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a URL to the source file that was used to create this file in the Archive Object.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="FileTree">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:choice minOccurs="1" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the file or folder information.
                            </xs:documentation>
                        </xs:annotation>
                        <xs:element ref="tns:File"/>
                        <xs:element ref="tns:Folder"/>
                    </xs:choice>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="FileTree" type="tns:FileTree"/>

    <xs:complexType name="FileFolder" abstract="true">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="tns:Identifiers" minOccurs="0" maxOccurs="1">
                <xs:annotation>
                    <xs:documentation>
                        Specifies zero or more identifiers defined by the author of the Archive Object. (This field provides space for user-defined identifiers.)
                    </xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Contains the human readable name of the File or Folder.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="index" type="xs:positiveInteger" use="required">
            <xs:annotation>
                <xs:documentation>
                    Contains a numerical value indexing the FileFolder data structure within the File Tree.  The Index starts at 1 and increment by 1 for each entry in the File Tree.  Starting at the root, each path extending from a node is fully numbered (including both Folders and Files) in sequence, before proceeding to the next path extending from the same node.  At any node, Folders are numbered at lower values than files.  See Figure for an example of “Index Numbering”.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="owner" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Contains the name of the owner that owned the File or Folder referenced by the FileFolder data structure when the FileFolder data structure was created.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="group" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Contains the name of the group assigned to the File or Folder referenced by the FileFolder data structure when the FileFolder data structure was created.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="permission" type="xs:string" use="optional">
            <xs:annotation>
                <xs:documentation>
                    Contains the permissions assigned to the File or Folder referenced by the FileFolder data structure when the Folder data structure was created.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:simpleType name="FolderProcessingType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ADD"/>
            <xs:enumeration value="DELETE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Folder">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:FileFolder">
                <xs:sequence>
                    <xs:choice minOccurs="1" maxOccurs="unbounded">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the File or Folder data type structures representing files or folders that are children one level lower in the folder hierarchy than the folder in which they are contained.
                            </xs:documentation>
                        </xs:annotation>
                        <xs:element ref="tns:File"/>
                        <xs:element ref="tns:Folder"/>
                    </xs:choice>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:attribute name="processing" type="tns:FolderProcessingType" default="ADD">
                    <xs:annotation>
                        <xs:documentation>
                            Specifies the treatment of a folder already existing in an Archive Object or to be added to an Archive Object.  Choices are ADD or DELETE.  The default treatment is ADD, if the attribute is not present.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="creation_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the Folder referenced by the Folder data structure was initially created.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="last_modified_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the Folder referenced by the Folder data structure was last modified.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="last_accessed_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the Folder referenced by the Folder data structure was last accessed
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="Folder" type="tns:Folder"/>

    <xs:simpleType name="FileProcessingType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ADD"/>
            <xs:enumeration value="REPLACE"/>
            <xs:enumeration value="DELETE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="File">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:FileFolder">
                <xs:sequence>
                    <xs:element ref="tns:Checksums" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies zero or more checksums for the purpose of detecting incidental errors that may have occured to the file during transmission or storage.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:attribute name="size" type="xs:nonNegativeInteger" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            Indicates the total size of the file in bytes.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="position" type="xs:nonNegativeInteger" use="required">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the relative chunk position of the first chunk of the file in relation to the first byte of the Archive Object.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="processing" type="tns:FileProcessingType" default="ADD">
                    <xs:annotation>
                        <xs:documentation>
                            Specifies the treatment of a file already existing in an Archive Object or to be added to an Archive Object.  Choices are ADD, UPDATE and DELETE.  The default treatment is ADD, if the attribute is not present.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="byte_order" type="tns:ByteOrder" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Specifies the Byte Order of the Payload file.  Little Endian or Big Endian.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="media_type" type="tns:MediaType" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the Media Type, formerly known as MIME Type, describing the format of the File referenced by the File data structure.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="creation_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the File referenced by the File data structure was initially created.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="last_modified_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the File referenced by the File data structure was last modified.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute name="last_accessed_time" type="xs:dateTime" use="optional">
                    <xs:annotation>
                        <xs:documentation>
                            Contains the date and time that the Folder referenced by the File data structure was last accessed.
                        </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="File" type="tns:File"/>

    <xs:simpleType name="MediaType">
        <xs:restriction base="xs:string">
            <xs:pattern value="([\d\w]{1}[\d\w!#$&amp;\-\^_\.\+]*)\/([\d\w]{1}[\d\w!#$&amp;\-\^_\.\+]*)(\p{S}.+(=.+)?)*" />
            <xs:maxLength value="255" />
        </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="ObjectFragmentHeader">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:FragmentNumber" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a positive integer number indicating the index of the Archive Object fragment within the overall Archive Object, starting at 1 and incrementing by 1 for each successive Archive Object fragment.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FragmentPairUUID" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a UUID that uniquely identifies a pair of successive Archive Object fragments within a single Archive Object, where the Fragment Numbers of the pair of fragments differ by 1.  The Fragment Pair UUID is placed in the Object Fragment Footer of the lower-ordered fragment and in the Object Fragment Header of the higher-ordered fragment.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:SpannedFileIndex" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a positive integer indicating the File Index within the File Tree of the file bridging or starting immediately following the span.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:SpannedFileOffset" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a positive integer indicating the total number of bytes of the file identified by the Spanned File Index that are contained within all of the preceding Archive Object fragments.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FilePath" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a string indicating the path within the File Tree to the file indicated by the Spanned File Index.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousMediumLabel" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a string specifying the Label contained within the Medium Identifier data structure on the medium carrying the preceding Archive Object fragment in the set of spanned fragments.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousMediumUUID" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a string specifying the UUID contained within the Medium Identifier data structure on the medium carrying the preceding Archive Object fragment in the set of spanned fragments.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ObjectFragmentFooter">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:ObjectFragmentHeader">
                <xs:sequence>
                    <xs:element ref="tns:NextMediumLabel" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a string specifying the Label contained within the Medium Identifier data structure on the medium carrying the following Archive Object fragment in the set of spanned fragments.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:NextMediumUUID" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a string specifying the UUID contained within the Medium Identifier data structure on the medium carrying the following Archive Object fragment in the set of spanned fragments.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousObjectIndexPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the last Object Index on the medium that is preceding the current Archive Object.     
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FooterPosition" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the relative chunk position from the beginning of the Archive Object pointing to the Object Footer structure for the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FragmentHeaderPosition" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the binary structure container wrapping the Object Fragment Header of the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:HeaderPosition" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position of the binary structure container wrapping the Object Header of the current Archive Object.   
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousHeaderPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Header structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PreviousFooterPosition" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Provides the absolute block position pointing to the Object Footer structure for the previous Archive Object.  This information is optional, as it cannot be guaranteed on non-linear random access medium types and is used to assist in the recovery and indexing of media.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="ObjectFooterCollection">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ObjectFooter" type="tns:ObjectFooter" minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:element name="ObjectFooterCollection" type="tns:ObjectFooterCollection"/>

    <xs:complexType name="FragmentFooterCollection">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="FragmentFooter" type="tns:ObjectFragmentFooter" minOccurs="0"
                maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:element name="FragmentFooterCollection" type="tns:FragmentFooterCollection"/>

    <xs:complexType name="Entity">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:EntityName" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the Entity.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:OperatorName" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the Operator.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:FacilityName" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the Facility.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Description" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable description of the Entity.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Location" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the information regarding the Location of the described Entity.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="Application">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:Licensee" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the licensee of the application described by this structure.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Licensor" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the organization that issues licenses for the application described by this structure.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:SerialNumber" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the serial number of the application instance.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ApplicationName" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the human readable name of the application described by this structure.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ApplicationVersion" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains the version number of the application instance as published by its author.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:ApplicationDescription" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Contains a human readable description of the application described by this structure.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="Application" type="tns:Application"/>

    <xs:complexType name="Location">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="tns:AXFObject">
                <xs:sequence>
                    <xs:element ref="tns:LocationName" minOccurs="1" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the name used to describe the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:AddressLine1" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the street number of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:AddressLine2" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the street name of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:City" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the city of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Province" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the province of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:State" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the state of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:PostalCode" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the postal code of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Country" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the human readable name of the country of the Location.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element ref="tns:Geolocation" minOccurs="0" maxOccurs="1">
                        <xs:annotation>
                            <xs:documentation>
                                Specifies the geolocation in accordance with RFC 5870.
                            </xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:any minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
                <xs:anyAttribute/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:element name="Location" type="tns:Location"/>

    <xs:complexType name="Identifier" mixed="true">
        <xs:annotation>
            <xs:documentation>
                Contains the value of the identifier.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="name" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Contains the name of the identifier.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authority" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Specifies the name of the authoritative source for the formatting and meaning of the identifier.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="Identifiers">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Identifier" type="tns:Identifier" minOccurs="0" maxOccurs="unbounded"
            />
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="ByteOrder">
        <xs:restriction base="xs:string">
            <xs:enumeration value="LE">
                <xs:annotation>
                    <xs:documentation>Little Endian</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BE">
                <xs:annotation>
                    <xs:documentation>Little Endian</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BOM">
                <xs:annotation>
                    <xs:documentation>Endianness is specified as a Byte Order Mark within the payload</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="Checksum" mixed="true">
        <xs:annotation>
            <xs:documentation>
                Contains the value of the checksum.
            </xs:documentation>
        </xs:annotation>
        <xs:attribute name="algorithm" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Contains the checksum algorithm name.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="authority" type="xs:string" use="required">
            <xs:annotation>
                <xs:documentation>
                    Specifies the name of the authoritative body that defines the checksum algorithm.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute name="uri" type="xs:anyURI" use="required">
            <xs:annotation>
                <xs:documentation>
                    Contains a URI that identifies the specification defining the checksum algorithm,
                    as published by the authoritative body specified in the authority attribute.
                </xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>

    <xs:complexType name="Checksums">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Checksum" type="tns:Checksum" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ChecksumTypes">
        <xs:annotation>
            <xs:documentation>
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ChecksumType" type="tns:Checksum" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="positionInteger" id="positionInteger">
        <xs:restriction base="xs:integer">
            <xs:minInclusive value="-1"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:element name="MediumLabel" type="xs:string"/>
    <xs:element name="BlockSize" type="xs:positiveInteger"/>
    <xs:element name="ChunkSize" type="xs:positiveInteger"/>
    <xs:element name="PreparedTime" type="xs:dateTime"/>
    <xs:element name="CreationTime" type="xs:dateTime"/>
    <xs:element name="InstanceTime" type="xs:dateTime"/>
    <xs:element name="MediumPreparer" type="tns:Entity"/>
    <xs:element name="MediumOwner" type="tns:Entity"/>
    <xs:element name="CreatedBy" type="tns:Entity"/>
    <xs:element name="ModifiedBy" type="tns:Entity"/>
    <xs:element name="ObjectCount" type="xs:positiveInteger"/>
    <xs:element name="CollectedSetSequence" type="xs:positiveInteger"/>
    <xs:element name="CollectedSetUUID" type="tns:UUID"/>
    <xs:element name="PreviousObjectIndexPosition" type="tns:positionInteger"/>
    <xs:element name="FooterPosition" type="tns:positionInteger"/>
    <xs:element name="HeaderPosition" type="tns:positionInteger"/>
    <xs:element name="FragmentHeaderPosition" type="tns:positionInteger"/>
    <xs:element name="PreviousHeaderPosition" type="tns:positionInteger"/>
    <xs:element name="PreviousFooterPosition" type="tns:positionInteger"/>
    <xs:element name="Identifier" type="tns:Identifier"/>
    <xs:element name="Checksum" type="tns:Checksum"/>
    <xs:element name="ObjectOwner" type="tns:Entity"/>
    <xs:element name="ContentOwner" type="tns:Entity"/>
    <xs:element name="ObjectDescription" type="xs:string"/>
    <xs:element name="ObjectName" type="xs:string"/>
    <xs:element name="FilePath" type="xs:string"/>
    <xs:element name="Licensee" type="tns:Entity"/>
    <xs:element name="Licensor" type="tns:Entity"/>
    <xs:element name="SerialNumber" type="xs:string"/>
    <xs:element name="ApplicationName" type="xs:string"/>
    <xs:element name="ApplicationVersion" type="xs:string"/>
    <xs:element name="ApplicationDescription" type="xs:string"/>
    <xs:element name="EntityName" type="xs:string"/>
    <xs:element name="OperatorName" type="xs:string"/>
    <xs:element name="FacilityName" type="xs:string"/>
    <xs:element name="Description" type="xs:string"/>
    <xs:element name="LocationName" type="xs:string"/>
    <xs:element name="AddressLine1" type="xs:string"/>
    <xs:element name="AddressLine2" type="xs:string"/>
    <xs:element name="City" type="xs:string"/>
    <xs:element name="Province" type="xs:string"/>
    <xs:element name="State" type="xs:string"/>
    <xs:element name="PostalCode" type="xs:string"/>
    <xs:element name="Country" type="xs:string"/>
    <xs:element name="Geolocation" type="xs:anyURI"/>
    <xs:element name="FragmentNumber" type="xs:positiveInteger"/>
    <xs:element name="FragmentPairUUID" type="tns:UUID"/>
    <xs:element name="SpannedFileIndex" type="xs:positiveInteger"/>
    <xs:element name="SpannedFileOffset" type="xs:nonNegativeInteger"/>
    <xs:element name="PreviousMediumLabel" type="xs:string"/>
    <xs:element name="PreviousMediumUUID" type="tns:UUID"/>
    <xs:element name="NextMediumLabel" type="xs:string"/>
    <xs:element name="NextMediumUUID" type="tns:UUID"/>
    <xs:element name="SourceFile" type="xs:anyURI"/>
    <xs:element name="Identifiers" type="tns:Identifiers"/>
    <xs:element name="ChecksumTypes" type="tns:ChecksumTypes"/>
    <xs:element name="Checksums" type="tns:Checksums"/>
    <xs:element name="UUID" type="tns:UUID"/>

    <!-- The following element definitions represent the document elements for the AXF structures -->
    <xs:element name="FileFooter" type="tns:FileFooter"/>
    <xs:element name="MediumIdentifier" type="tns:MediumIdentifier"/>
    <xs:element name="ObjectFooter" type="tns:ObjectFooter"/>
    <xs:element name="ObjectFragmentFooter" type="tns:ObjectFragmentFooter"/>
    <xs:element name="ObjectFragmentHeader" type="tns:ObjectFragmentHeader"/>
    <xs:element name="ObjectHeader" type="tns:ObjectHeader"/>
    <xs:element name="ObjectIndex" type="tns:ObjectIndex"/>
</xs:schema>
