<?xml version="1.0" encoding="UTF-8"?>
<!-- filename: lib-arch-utility.xsd -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0-02">
    <xs:annotation>
        <xs:documentation>Liberty Alliance Project utility schema.  A collection of common elements and types for use with independent Liberty XML Schema documents. </xs:documentation>
        <xs:documentation>Copyright 2003 Liberty Alliance Project. </xs:documentation>
        <xs:documentation>Editor: Tom Wason IEEE - ISTO</xs:documentation>
        <xs:documentation>This version: 2003-06-04</xs:documentation>
        <xs:documentation>This file intended for inclusion, rather than importation, into other schemas.</xs:documentation>
    </xs:annotation>
    <xs:simpleType name="IDType">
        <xs:annotation>
            <xs:documentation> This type should be used when putting IDs on things where the IDs are not scoped to the local xml instance document </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:simpleType name="IDReferenceType">
        <xs:annotation>
            <xs:documentation> This type can be used when referring to elements that are
       identified using an IDType </xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:element name="Status" type="StatusType">
        <xs:annotation>
            <xs:documentation> A standard Status type</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="StatusType">
        <xs:annotation>
            <xs:documentation> A type that can be used for status codes </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element ref="Status" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="code" type="xs:QName" use="required"/>
        <xs:attribute name="ref" type="IDReferenceType" use="optional"/>
        <xs:attribute name="comment" type="xs:string" use="optional"/>
    </xs:complexType>
    <xs:complexType name="EmptyType">
        <xs:annotation>
            <xs:documentation> This type can be used to create an empty element </xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:restriction base="xs:anyType"/>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="Extension" type="extensionType">
        <xs:annotation>
            <xs:documentation>For arbitrary content extensions from other namespaces</xs:documentation>
        </xs:annotation>
    </xs:element>
    <xs:complexType name="extensionType">
        <xs:annotation>
            <xs:documentation>For arbitrary content extensions from other namespaces</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any namespace="##other" processContents="lax" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:attribute name="consent" type="xs:QName">
        <xs:annotation>
            <xs:documentation> This attribute is used by message constructors that need/want to report about obtained consent.</xs:documentation>
        </xs:annotation>
    </xs:attribute>
</xs:schema>

