[jboss-identity-commits] JBoss Identity SVN: r230 - in xmlkey/trunk/skms: src/main/java and 9 other directories.

jboss-identity-commits at lists.jboss.org jboss-identity-commits at lists.jboss.org
Sun Jan 18 23:12:51 EST 2009


Author: anil.saldhana at jboss.com
Date: 2009-01-18 23:12:50 -0500 (Sun, 18 Jan 2009)
New Revision: 230

Added:
   xmlkey/trunk/skms/src/main/java/org/
   xmlkey/trunk/skms/src/main/java/org/jboss/
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ApplicationsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCacheDetailType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyRequest.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyResponse.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyClassesType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyUsePolicyType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/LevelClassificationType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ObjectFactory.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermissionsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedApplicationsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDatesType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDayType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDaysType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDurationType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLevelsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLocationsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedNumberOfTransactionsType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedTimesType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedUsesType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/StatusType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyErrorType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyRequest.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyResponse.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyWorkInProgressType.java
   xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/package-info.java
   xmlkey/trunk/skms/src/main/resources/schema/
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/EKMICoreLibrary.xsd
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpRequest.xsd
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpResponse.xsd
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyRequest.xsd
   xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyResponse.xsd
Modified:
   xmlkey/trunk/skms/.classpath
Log:
JAXB2 model for skms

Modified: xmlkey/trunk/skms/.classpath
===================================================================
--- xmlkey/trunk/skms/.classpath	2009-01-19 04:12:16 UTC (rev 229)
+++ xmlkey/trunk/skms/.classpath	2009-01-19 04:12:50 UTC (rev 230)
@@ -6,5 +6,7 @@
 	<classpathentry kind="src" path="src/main/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 	<classpathentry combineaccessrules="false" kind="src" path="/common"/>
+	<classpathentry kind="var" path="M2_REPO/org/jboss/identity/jboss-identity-xmlsec-model/1.0.0-SNAPSHOT/jboss-identity-xmlsec-model-1.0.0-SNAPSHOT.jar"/>
+	<classpathentry kind="var" path="M2_REPO/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar"/>
 	<classpathentry kind="output" path="target-eclipse"/>
 </classpath>

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ApplicationsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ApplicationsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ApplicationsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,220 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for ApplicationsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="ApplicationsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="ApplicationID" type="{http://docs.oasis-open.org/ekmi/2008/01}TwoPartIDType"/>
+ *         &lt;element name="ApplicationName">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="256"/>
+ *               &lt;whiteSpace value="preserve"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Version" minOccurs="0">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="32"/>
+ *               &lt;whiteSpace value="preserve"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;group ref="{http://docs.oasis-open.org/ekmi/2008/01}MessageDigestGroup" minOccurs="0"/>
+ *         &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "ApplicationsType", propOrder = {
+    "applicationID",
+    "applicationName",
+    "version",
+    "digestAlgorithm",
+    "digestValue",
+    "other"
+})
+public class ApplicationsType {
+
+    @XmlElement(name = "ApplicationID", required = true)
+    protected String applicationID;
+    @XmlElement(name = "ApplicationName", required = true)
+    protected String applicationName;
+    @XmlElement(name = "Version")
+    protected String version;
+    @XmlElement(name = "DigestAlgorithm")
+    protected String digestAlgorithm;
+    @XmlElement(name = "DigestValue")
+    protected byte[] digestValue;
+    @XmlElement(name = "Other")
+    protected Object other;
+
+    /**
+     * Gets the value of the applicationID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getApplicationID() {
+        return applicationID;
+    }
+
+    /**
+     * Sets the value of the applicationID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setApplicationID(String value) {
+        this.applicationID = value;
+    }
+
+    /**
+     * Gets the value of the applicationName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getApplicationName() {
+        return applicationName;
+    }
+
+    /**
+     * Sets the value of the applicationName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setApplicationName(String value) {
+        this.applicationName = value;
+    }
+
+    /**
+     * Gets the value of the version property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getVersion() {
+        return version;
+    }
+
+    /**
+     * Sets the value of the version property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setVersion(String value) {
+        this.version = value;
+    }
+
+    /**
+     * Gets the value of the digestAlgorithm property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDigestAlgorithm() {
+        return digestAlgorithm;
+    }
+
+    /**
+     * Sets the value of the digestAlgorithm property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDigestAlgorithm(String value) {
+        this.digestAlgorithm = value;
+    }
+
+    /**
+     * Gets the value of the digestValue property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getDigestValue() {
+        return digestValue;
+    }
+
+    /**
+     * Sets the value of the digestValue property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setDigestValue(byte[] value) {
+        this.digestValue = ((byte[]) value);
+    }
+
+    /**
+     * Gets the value of the other property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getOther() {
+        return other;
+    }
+
+    /**
+     * Sets the value of the other property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setOther(Object value) {
+        this.other = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCacheDetailType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCacheDetailType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCacheDetailType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,112 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for KeyCacheDetailType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyCacheDetailType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="MaximumKeys">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}integer">
+ *               &lt;minInclusive value="0"/>
+ *               &lt;maxInclusive value="18446744073709551615"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="MaximumDuration">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}integer">
+ *               &lt;minInclusive value="0"/>
+ *               &lt;maxInclusive value="18446744073709551615"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "KeyCacheDetailType", propOrder = {
+    "maximumKeys",
+    "maximumDuration"
+})
+public class KeyCacheDetailType {
+
+    @XmlElement(name = "MaximumKeys", required = true)
+    protected BigInteger maximumKeys;
+    @XmlElement(name = "MaximumDuration", required = true)
+    protected BigInteger maximumDuration;
+
+    /**
+     * Gets the value of the maximumKeys property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getMaximumKeys() {
+        return maximumKeys;
+    }
+
+    /**
+     * Sets the value of the maximumKeys property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setMaximumKeys(BigInteger value) {
+        this.maximumKeys = value;
+    }
+
+    /**
+     * Gets the value of the maximumDuration property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getMaximumDuration() {
+        return maximumDuration;
+    }
+
+    /**
+     * Sets the value of the maximumDuration property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setMaximumDuration(BigInteger value) {
+        this.maximumDuration = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyRequest.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyRequest.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyRequest.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,43 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 09:59:29 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                     No elements/attributes are defined for KeyCachePolicyRequest.
+ *                 
+ * 
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "")
+ at XmlRootElement(name = "KeyCachePolicyRequest")
+public class KeyCachePolicyRequest {
+
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyResponse.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyResponse.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyResponse.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,78 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 09:59:58 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="KeyCachePolicy" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyCachePolicyType" maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "keyCachePolicy"
+})
+ at XmlRootElement(name = "KeyCachePolicyResponse")
+public class KeyCachePolicyResponse {
+
+    @XmlElement(name = "KeyCachePolicy", required = true)
+    protected List<KeyCachePolicyType> keyCachePolicy;
+
+    /**
+     * Gets the value of the keyCachePolicy property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the keyCachePolicy property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getKeyCachePolicy().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link KeyCachePolicyType }
+     * 
+     * 
+     */
+    public List<KeyCachePolicyType> getKeyCachePolicy() {
+        if (keyCachePolicy == null) {
+            keyCachePolicy = new ArrayList<KeyCachePolicyType>();
+        }
+        return this.keyCachePolicy;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyCachePolicyType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,147 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * 
+ *                 The KeyCachePolicyType document is returned as part of
+ *                 the response to a request for a key-caching policy from a
+ *                 Symmetric Key Services (SKS) server.  The KCP tells the
+ *                 SKMS client if it may cache symmetric keys, and if so, how 
+ *                 many new and used keys it may cache, for how long, etc.
+ *             
+ * 
+ * <p>Java class for KeyCachePolicyType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyCachePolicyType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="KeyCachePolicyID" type="{http://docs.oasis-open.org/ekmi/2008/01}TwoPartIDType"/>
+ *         &lt;element name="PolicyName">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="255"/>
+ *               &lt;whiteSpace value="preserve"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Description">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="2048"/>
+ *               &lt;whiteSpace value="preserve"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="KeyClass" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassType"/>
+ *         &lt;element name="StartDate" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="EndDate" type="{http://www.w3.org/2001/XMLSchema}dateTime"/>
+ *         &lt;element name="PolicyCheckInterval">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}nonNegativeInteger">
+ *               &lt;minInclusive value="0"/>
+ *               &lt;maxInclusive value="2592000"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Status" type="{http://docs.oasis-open.org/ekmi/2008/01}StatusType"/>
+ *         &lt;element name="NewKeysCacheDetail" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyCacheDetailType" minOccurs="0"/>
+ *         &lt;element name="UsedKeysCacheDetail" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyCacheDetailType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "KeyCachePolicyType", propOrder = {
+    "content"
+})
+public class KeyCachePolicyType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "UsedKeysCacheDetail", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "Description", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "KeyCachePolicyID", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "EndDate", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "StartDate", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "PolicyCheckInterval", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "KeyClass", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "Status", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "PolicyName", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "NewKeysCacheDetail", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class)
+    })
+    @XmlMixed
+    protected List<Serializable> content;
+
+    /**
+     * 
+     *                 The KeyCachePolicyType document is returned as part of
+     *                 the response to a request for a key-caching policy from a
+     *                 Symmetric Key Services (SKS) server.  The KCP tells the
+     *                 SKMS client if it may cache symmetric keys, and if so, how 
+     *                 many new and used keys it may cache, for how long, etc.
+     *             Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link KeyCacheDetailType }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link String }
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link Integer }{@code >}
+     * {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}
+     * {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}
+     * {@link JAXBElement }{@code <}{@link StatusType }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link KeyCacheDetailType }{@code >}
+     * 
+     * 
+     */
+    public List<Serializable> getContent() {
+        if (content == null) {
+            content = new ArrayList<Serializable>();
+        }
+        return this.content;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyClassesType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyClassesType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyClassesType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,76 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for KeyClassesType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyClassesType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="KeyClass" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassType" maxOccurs="unbounded"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "KeyClassesType", propOrder = {
+    "keyClass"
+})
+public class KeyClassesType {
+
+    @XmlElement(name = "KeyClass", required = true)
+    protected List<String> keyClass;
+
+    /**
+     * Gets the value of the keyClass property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the keyClass property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getKeyClass().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getKeyClass() {
+        if (keyClass == null) {
+            keyClass = new ArrayList<String>();
+        }
+        return this.keyClass;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyUsePolicyType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyUsePolicyType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/KeyUsePolicyType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,122 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                 The KeyUsePolicyType document is returned as part of the 
+ *                 response to a request for a symmetric key from a Symmetric 
+ *                 Key Services (SKS) server.  The KUP tells the client how 
+ *                 it must use the associated symmetric key.  At least one
+ *                 permission-type will provide the policy definition.
+ *             
+ * 
+ * <p>Java class for KeyUsePolicyType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="KeyUsePolicyType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="KeyUsePolicyID" type="{http://docs.oasis-open.org/ekmi/2008/01}TwoPartIDType"/>
+ *         &lt;element name="PolicyName">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="255"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="KeyClass" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassType"/>
+ *         &lt;element name="KeyAlgorithm" type="{http://docs.oasis-open.org/ekmi/2008/01}EncryptionAlgorithmType"/>
+ *         &lt;element name="KeySize" type="{http://docs.oasis-open.org/ekmi/2008/01}KeySizeType"/>
+ *         &lt;element name="Status" type="{http://docs.oasis-open.org/ekmi/2008/01}StatusType"/>
+ *         &lt;element name="Permissions" type="{http://docs.oasis-open.org/ekmi/2008/01}PermissionsType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "KeyUsePolicyType", propOrder = {
+    "content"
+})
+public class KeyUsePolicyType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "KeyAlgorithm", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "KeyUsePolicyID", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "Status", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "Permissions", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "KeySize", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "KeyClass", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "PolicyName", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class)
+    })
+    @XmlMixed
+    protected List<Serializable> content;
+
+    /**
+     * 
+     *                 The KeyUsePolicyType document is returned as part of the 
+     *                 response to a request for a symmetric key from a Symmetric 
+     *                 Key Services (SKS) server.  The KUP tells the client how 
+     *                 it must use the associated symmetric key.  At least one
+     *                 permission-type will provide the policy definition.
+     *             Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link StatusType }{@code >}
+     * {@link JAXBElement }{@code <}{@link PermissionsType }{@code >}
+     * {@link String }
+     * {@link JAXBElement }{@code <}{@link Integer }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * 
+     * 
+     */
+    public List<Serializable> getContent() {
+        if (content == null) {
+            content = new ArrayList<Serializable>();
+        }
+        return this.content;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/LevelClassificationType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/LevelClassificationType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/LevelClassificationType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,84 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for LevelClassificationType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="LevelClassificationType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     &lt;enumeration value="Unclassified"/>
+ *     &lt;enumeration value="Confidential"/>
+ *     &lt;enumeration value="Secret"/>
+ *     &lt;enumeration value="Top-Secret"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+ at XmlType(name = "LevelClassificationType")
+ at XmlEnum
+public enum LevelClassificationType {
+
+
+    /**
+     * Data that is deemed public.
+     * 
+     */
+    @XmlEnumValue("Unclassified")
+    UNCLASSIFIED("Unclassified"),
+
+    /**
+     * Data that is deemed confidential.
+     * 
+     */
+    @XmlEnumValue("Confidential")
+    CONFIDENTIAL("Confidential"),
+
+    /**
+     * Data that is deemed secret.
+     * 
+     */
+    @XmlEnumValue("Secret")
+    SECRET("Secret"),
+
+    /**
+     * Data that is deemed top-secret.
+     * 
+     */
+    @XmlEnumValue("Top-Secret")
+    TOP_SECRET("Top-Secret");
+    private final String value;
+
+    LevelClassificationType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static LevelClassificationType fromValue(String v) {
+        for (LevelClassificationType c: LevelClassificationType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ObjectFactory.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ObjectFactory.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/ObjectFactory.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,457 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.math.BigDecimal;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.datatype.XMLGregorianCalendar;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.oasis_open.docs.ekmi._2008._01 package. 
+ * <p>An ObjectFactory allows you to programatically 
+ * construct new instances of the Java representation 
+ * for XML content. The Java representation of XML 
+ * content can consist of schema derived interfaces 
+ * and classes representing the binding of schema 
+ * type definitions, element declarations and model 
+ * groups.  Factory methods for each of these are 
+ * provided in this class.
+ * 
+ */
+ at XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _PermittedUsesTypePermittedUse_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "PermittedUse");
+    private final static QName _PermittedUsesTypeOther_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Other");
+    private final static QName _KeyUsePolicyTypeStatus_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Status");
+    private final static QName _KeyUsePolicyTypePolicyName_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "PolicyName");
+    private final static QName _KeyUsePolicyTypePermissions_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Permissions");
+    private final static QName _KeyUsePolicyTypeKeyClass_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "KeyClass");
+    private final static QName _KeyUsePolicyTypeKeySize_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "KeySize");
+    private final static QName _KeyUsePolicyTypeKeyUsePolicyID_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "KeyUsePolicyID");
+    private final static QName _KeyUsePolicyTypeKeyAlgorithm_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "KeyAlgorithm");
+    private final static QName _PermittedLocationsTypePermittedLocationLongitude_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Longitude");
+    private final static QName _PermittedLocationsTypePermittedLocationLatitude_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Latitude");
+    private final static QName _KeyCachePolicyTypePolicyCheckInterval_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "PolicyCheckInterval");
+    private final static QName _KeyCachePolicyTypeEndDate_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "EndDate");
+    private final static QName _KeyCachePolicyTypeKeyCachePolicyID_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "KeyCachePolicyID");
+    private final static QName _KeyCachePolicyTypeDescription_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Description");
+    private final static QName _KeyCachePolicyTypeStartDate_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "StartDate");
+    private final static QName _KeyCachePolicyTypeUsedKeysCacheDetail_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "UsedKeysCacheDetail");
+    private final static QName _KeyCachePolicyTypeNewKeysCacheDetail_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "NewKeysCacheDetail");
+    private final static QName _SymkeyError_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "SymkeyError");
+    private final static QName _SymkeyWorkInProgress_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "SymkeyWorkInProgress");
+    private final static QName _Symkey_QNAME = new QName("http://docs.oasis-open.org/ekmi/2008/01", "Symkey");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.oasis_open.docs.ekmi._2008._01
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link PermittedDatesType }
+     * 
+     */
+    public PermittedDatesType createPermittedDatesType() {
+        return new PermittedDatesType();
+    }
+
+    /**
+     * Create an instance of {@link SymkeyWorkInProgressType }
+     * 
+     */
+    public SymkeyWorkInProgressType createSymkeyWorkInProgressType() {
+        return new SymkeyWorkInProgressType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedApplicationsType }
+     * 
+     */
+    public PermittedApplicationsType createPermittedApplicationsType() {
+        return new PermittedApplicationsType();
+    }
+
+    /**
+     * Create an instance of {@link KeyUsePolicyType }
+     * 
+     */
+    public KeyUsePolicyType createKeyUsePolicyType() {
+        return new KeyUsePolicyType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedDatesType.PermittedDate }
+     * 
+     */
+    public PermittedDatesType.PermittedDate createPermittedDatesTypePermittedDate() {
+        return new PermittedDatesType.PermittedDate();
+    }
+
+    /**
+     * Create an instance of {@link PermittedTimesType }
+     * 
+     */
+    public PermittedTimesType createPermittedTimesType() {
+        return new PermittedTimesType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedDurationType }
+     * 
+     */
+    public PermittedDurationType createPermittedDurationType() {
+        return new PermittedDurationType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedLocationsType }
+     * 
+     */
+    public PermittedLocationsType createPermittedLocationsType() {
+        return new PermittedLocationsType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedNumberOfTransactionsType }
+     * 
+     */
+    public PermittedNumberOfTransactionsType createPermittedNumberOfTransactionsType() {
+        return new PermittedNumberOfTransactionsType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedUsesType }
+     * 
+     */
+    public PermittedUsesType createPermittedUsesType() {
+        return new PermittedUsesType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedLevelsType }
+     * 
+     */
+    public PermittedLevelsType createPermittedLevelsType() {
+        return new PermittedLevelsType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedLocationsType.PermittedLocation }
+     * 
+     */
+    public PermittedLocationsType.PermittedLocation createPermittedLocationsTypePermittedLocation() {
+        return new PermittedLocationsType.PermittedLocation();
+    }
+
+    /**
+     * Create an instance of {@link SymkeyType }
+     * 
+     */
+    public SymkeyType createSymkeyType() {
+        return new SymkeyType();
+    }
+
+    /**
+     * Create an instance of {@link KeyCacheDetailType }
+     * 
+     */
+    public KeyCacheDetailType createKeyCacheDetailType() {
+        return new KeyCacheDetailType();
+    }
+
+    /**
+     * Create an instance of {@link KeyClassesType }
+     * 
+     */
+    public KeyClassesType createKeyClassesType() {
+        return new KeyClassesType();
+    }
+
+    /**
+     * Create an instance of {@link PermissionsType }
+     * 
+     */
+    public PermissionsType createPermissionsType() {
+        return new PermissionsType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedTimesType.PermittedTime }
+     * 
+     */
+    public PermittedTimesType.PermittedTime createPermittedTimesTypePermittedTime() {
+        return new PermittedTimesType.PermittedTime();
+    }
+
+    /**
+     * Create an instance of {@link KeyCachePolicyType }
+     * 
+     */
+    public KeyCachePolicyType createKeyCachePolicyType() {
+        return new KeyCachePolicyType();
+    }
+
+    /**
+     * Create an instance of {@link PermittedDaysType }
+     * 
+     */
+    public PermittedDaysType createPermittedDaysType() {
+        return new PermittedDaysType();
+    }
+
+    /**
+     * Create an instance of {@link SymkeyErrorType }
+     * 
+     */
+    public SymkeyErrorType createSymkeyErrorType() {
+        return new SymkeyErrorType();
+    }
+
+    /**
+     * Create an instance of {@link ApplicationsType }
+     * 
+     */
+    public ApplicationsType createApplicationsType() {
+        return new ApplicationsType();
+    }
+
+    /**
+     * Create an instance of {@link SymkeyResponse }
+     * 
+     */
+    public SymkeyResponse createSymkeyResponse() {
+        return new SymkeyResponse();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "PermittedUse", scope = PermittedUsesType.class)
+    public JAXBElement<String> createPermittedUsesTypePermittedUse(String value) {
+        return new JAXBElement<String>(_PermittedUsesTypePermittedUse_QNAME, String.class, PermittedUsesType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Object }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Other", scope = PermittedUsesType.class)
+    public JAXBElement<Object> createPermittedUsesTypeOther(Object value) {
+        return new JAXBElement<Object>(_PermittedUsesTypeOther_QNAME, Object.class, PermittedUsesType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link StatusType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Status", scope = KeyUsePolicyType.class)
+    public JAXBElement<StatusType> createKeyUsePolicyTypeStatus(StatusType value) {
+        return new JAXBElement<StatusType>(_KeyUsePolicyTypeStatus_QNAME, StatusType.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "PolicyName", scope = KeyUsePolicyType.class)
+    public JAXBElement<String> createKeyUsePolicyTypePolicyName(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypePolicyName_QNAME, String.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link PermissionsType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Permissions", scope = KeyUsePolicyType.class)
+    public JAXBElement<PermissionsType> createKeyUsePolicyTypePermissions(PermissionsType value) {
+        return new JAXBElement<PermissionsType>(_KeyUsePolicyTypePermissions_QNAME, PermissionsType.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeyClass", scope = KeyUsePolicyType.class)
+    public JAXBElement<String> createKeyUsePolicyTypeKeyClass(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypeKeyClass_QNAME, String.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeySize", scope = KeyUsePolicyType.class)
+    public JAXBElement<Integer> createKeyUsePolicyTypeKeySize(Integer value) {
+        return new JAXBElement<Integer>(_KeyUsePolicyTypeKeySize_QNAME, Integer.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeyUsePolicyID", scope = KeyUsePolicyType.class)
+    public JAXBElement<String> createKeyUsePolicyTypeKeyUsePolicyID(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypeKeyUsePolicyID_QNAME, String.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeyAlgorithm", scope = KeyUsePolicyType.class)
+    public JAXBElement<String> createKeyUsePolicyTypeKeyAlgorithm(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypeKeyAlgorithm_QNAME, String.class, KeyUsePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Longitude", scope = PermittedLocationsType.PermittedLocation.class)
+    public JAXBElement<BigDecimal> createPermittedLocationsTypePermittedLocationLongitude(BigDecimal value) {
+        return new JAXBElement<BigDecimal>(_PermittedLocationsTypePermittedLocationLongitude_QNAME, BigDecimal.class, PermittedLocationsType.PermittedLocation.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Latitude", scope = PermittedLocationsType.PermittedLocation.class)
+    public JAXBElement<BigDecimal> createPermittedLocationsTypePermittedLocationLatitude(BigDecimal value) {
+        return new JAXBElement<BigDecimal>(_PermittedLocationsTypePermittedLocationLatitude_QNAME, BigDecimal.class, PermittedLocationsType.PermittedLocation.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link Integer }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "PolicyCheckInterval", scope = KeyCachePolicyType.class)
+    public JAXBElement<Integer> createKeyCachePolicyTypePolicyCheckInterval(Integer value) {
+        return new JAXBElement<Integer>(_KeyCachePolicyTypePolicyCheckInterval_QNAME, Integer.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "EndDate", scope = KeyCachePolicyType.class)
+    public JAXBElement<XMLGregorianCalendar> createKeyCachePolicyTypeEndDate(XMLGregorianCalendar value) {
+        return new JAXBElement<XMLGregorianCalendar>(_KeyCachePolicyTypeEndDate_QNAME, XMLGregorianCalendar.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link StatusType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Status", scope = KeyCachePolicyType.class)
+    public JAXBElement<StatusType> createKeyCachePolicyTypeStatus(StatusType value) {
+        return new JAXBElement<StatusType>(_KeyUsePolicyTypeStatus_QNAME, StatusType.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "PolicyName", scope = KeyCachePolicyType.class)
+    public JAXBElement<String> createKeyCachePolicyTypePolicyName(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypePolicyName_QNAME, String.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeyCachePolicyID", scope = KeyCachePolicyType.class)
+    public JAXBElement<String> createKeyCachePolicyTypeKeyCachePolicyID(String value) {
+        return new JAXBElement<String>(_KeyCachePolicyTypeKeyCachePolicyID_QNAME, String.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "KeyClass", scope = KeyCachePolicyType.class)
+    public JAXBElement<String> createKeyCachePolicyTypeKeyClass(String value) {
+        return new JAXBElement<String>(_KeyUsePolicyTypeKeyClass_QNAME, String.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link String }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Description", scope = KeyCachePolicyType.class)
+    public JAXBElement<String> createKeyCachePolicyTypeDescription(String value) {
+        return new JAXBElement<String>(_KeyCachePolicyTypeDescription_QNAME, String.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link XMLGregorianCalendar }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "StartDate", scope = KeyCachePolicyType.class)
+    public JAXBElement<XMLGregorianCalendar> createKeyCachePolicyTypeStartDate(XMLGregorianCalendar value) {
+        return new JAXBElement<XMLGregorianCalendar>(_KeyCachePolicyTypeStartDate_QNAME, XMLGregorianCalendar.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link KeyCacheDetailType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "UsedKeysCacheDetail", scope = KeyCachePolicyType.class)
+    public JAXBElement<KeyCacheDetailType> createKeyCachePolicyTypeUsedKeysCacheDetail(KeyCacheDetailType value) {
+        return new JAXBElement<KeyCacheDetailType>(_KeyCachePolicyTypeUsedKeysCacheDetail_QNAME, KeyCacheDetailType.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link KeyCacheDetailType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "NewKeysCacheDetail", scope = KeyCachePolicyType.class)
+    public JAXBElement<KeyCacheDetailType> createKeyCachePolicyTypeNewKeysCacheDetail(KeyCacheDetailType value) {
+        return new JAXBElement<KeyCacheDetailType>(_KeyCachePolicyTypeNewKeysCacheDetail_QNAME, KeyCacheDetailType.class, KeyCachePolicyType.class, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SymkeyErrorType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "SymkeyError")
+    public JAXBElement<SymkeyErrorType> createSymkeyError(SymkeyErrorType value) {
+        return new JAXBElement<SymkeyErrorType>(_SymkeyError_QNAME, SymkeyErrorType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SymkeyWorkInProgressType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "SymkeyWorkInProgress")
+    public JAXBElement<SymkeyWorkInProgressType> createSymkeyWorkInProgress(SymkeyWorkInProgressType value) {
+        return new JAXBElement<SymkeyWorkInProgressType>(_SymkeyWorkInProgress_QNAME, SymkeyWorkInProgressType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link SymkeyType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://docs.oasis-open.org/ekmi/2008/01", name = "Symkey")
+    public JAXBElement<SymkeyType> createSymkey(SymkeyType value) {
+        return new JAXBElement<SymkeyType>(_Symkey_QNAME, SymkeyType.class, null, value);
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermissionsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermissionsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermissionsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,338 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                 This is a required element that allows companies to define 
+ *                 how the symmetric key may be used.  It will be included in 
+ *                 the KUP object returned with the symmetric key.  Applications 
+ *                 must parse through the permissions before using the key and 
+ *                 only allow what is permitted for that permission type.  
+ *                 
+ *                 All "Permitted..." sub-elements - except for the Other element - 
+ *                 are required.  However, if the attribute "any" for each of the 
+ *                 "Permitted..." sub-elements is set to "true", then the xsi:nil 
+ *                 attribute must also be set to "true" and the sub-element must 
+ *                 be empty.  If the value of the "any" attribute for a specific
+ *                 "Permitted..." sub-element is "false", then at least one child 
+ *                 element must exist for the "Permitted..." sub-element and the
+ *                 xsi:nil attribute must not exist.
+ *             
+ * 
+ * <p>Java class for PermissionsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermissionsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedApplications" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedApplicationsType"/>
+ *         &lt;element name="PermittedDates" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedDatesType"/>
+ *         &lt;element name="PermittedDays" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedDaysType"/>
+ *         &lt;element name="PermittedDuration" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedDurationType"/>
+ *         &lt;element name="PermittedLevels" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedLevelsType"/>
+ *         &lt;element name="PermittedLocations" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedLocationsType"/>
+ *         &lt;element name="PermittedNumberOfTransactions" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedNumberOfTransactionsType"/>
+ *         &lt;element name="PermittedTimes" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedTimesType"/>
+ *         &lt;element name="PermittedUses" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedUsesType"/>
+ *         &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermissionsType", propOrder = {
+    "permittedApplications",
+    "permittedDates",
+    "permittedDays",
+    "permittedDuration",
+    "permittedLevels",
+    "permittedLocations",
+    "permittedNumberOfTransactions",
+    "permittedTimes",
+    "permittedUses",
+    "other"
+})
+public class PermissionsType {
+
+    @XmlElement(name = "PermittedApplications", required = true, nillable = true)
+    protected PermittedApplicationsType permittedApplications;
+    @XmlElement(name = "PermittedDates", required = true, nillable = true)
+    protected PermittedDatesType permittedDates;
+    @XmlElement(name = "PermittedDays", required = true, nillable = true)
+    protected PermittedDaysType permittedDays;
+    @XmlElement(name = "PermittedDuration", required = true, nillable = true)
+    protected PermittedDurationType permittedDuration;
+    @XmlElement(name = "PermittedLevels", required = true, nillable = true)
+    protected PermittedLevelsType permittedLevels;
+    @XmlElement(name = "PermittedLocations", required = true, nillable = true)
+    protected PermittedLocationsType permittedLocations;
+    @XmlElement(name = "PermittedNumberOfTransactions", required = true, nillable = true)
+    protected PermittedNumberOfTransactionsType permittedNumberOfTransactions;
+    @XmlElement(name = "PermittedTimes", required = true, nillable = true)
+    protected PermittedTimesType permittedTimes;
+    @XmlElement(name = "PermittedUses", required = true, nillable = true)
+    protected PermittedUsesType permittedUses;
+    @XmlElement(name = "Other")
+    protected Object other;
+
+    /**
+     * Gets the value of the permittedApplications property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedApplicationsType }
+     *     
+     */
+    public PermittedApplicationsType getPermittedApplications() {
+        return permittedApplications;
+    }
+
+    /**
+     * Sets the value of the permittedApplications property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedApplicationsType }
+     *     
+     */
+    public void setPermittedApplications(PermittedApplicationsType value) {
+        this.permittedApplications = value;
+    }
+
+    /**
+     * Gets the value of the permittedDates property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedDatesType }
+     *     
+     */
+    public PermittedDatesType getPermittedDates() {
+        return permittedDates;
+    }
+
+    /**
+     * Sets the value of the permittedDates property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedDatesType }
+     *     
+     */
+    public void setPermittedDates(PermittedDatesType value) {
+        this.permittedDates = value;
+    }
+
+    /**
+     * Gets the value of the permittedDays property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedDaysType }
+     *     
+     */
+    public PermittedDaysType getPermittedDays() {
+        return permittedDays;
+    }
+
+    /**
+     * Sets the value of the permittedDays property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedDaysType }
+     *     
+     */
+    public void setPermittedDays(PermittedDaysType value) {
+        this.permittedDays = value;
+    }
+
+    /**
+     * Gets the value of the permittedDuration property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedDurationType }
+     *     
+     */
+    public PermittedDurationType getPermittedDuration() {
+        return permittedDuration;
+    }
+
+    /**
+     * Sets the value of the permittedDuration property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedDurationType }
+     *     
+     */
+    public void setPermittedDuration(PermittedDurationType value) {
+        this.permittedDuration = value;
+    }
+
+    /**
+     * Gets the value of the permittedLevels property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedLevelsType }
+     *     
+     */
+    public PermittedLevelsType getPermittedLevels() {
+        return permittedLevels;
+    }
+
+    /**
+     * Sets the value of the permittedLevels property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedLevelsType }
+     *     
+     */
+    public void setPermittedLevels(PermittedLevelsType value) {
+        this.permittedLevels = value;
+    }
+
+    /**
+     * Gets the value of the permittedLocations property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedLocationsType }
+     *     
+     */
+    public PermittedLocationsType getPermittedLocations() {
+        return permittedLocations;
+    }
+
+    /**
+     * Sets the value of the permittedLocations property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedLocationsType }
+     *     
+     */
+    public void setPermittedLocations(PermittedLocationsType value) {
+        this.permittedLocations = value;
+    }
+
+    /**
+     * Gets the value of the permittedNumberOfTransactions property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedNumberOfTransactionsType }
+     *     
+     */
+    public PermittedNumberOfTransactionsType getPermittedNumberOfTransactions() {
+        return permittedNumberOfTransactions;
+    }
+
+    /**
+     * Sets the value of the permittedNumberOfTransactions property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedNumberOfTransactionsType }
+     *     
+     */
+    public void setPermittedNumberOfTransactions(PermittedNumberOfTransactionsType value) {
+        this.permittedNumberOfTransactions = value;
+    }
+
+    /**
+     * Gets the value of the permittedTimes property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedTimesType }
+     *     
+     */
+    public PermittedTimesType getPermittedTimes() {
+        return permittedTimes;
+    }
+
+    /**
+     * Sets the value of the permittedTimes property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedTimesType }
+     *     
+     */
+    public void setPermittedTimes(PermittedTimesType value) {
+        this.permittedTimes = value;
+    }
+
+    /**
+     * Gets the value of the permittedUses property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link PermittedUsesType }
+     *     
+     */
+    public PermittedUsesType getPermittedUses() {
+        return permittedUses;
+    }
+
+    /**
+     * Sets the value of the permittedUses property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link PermittedUsesType }
+     *     
+     */
+    public void setPermittedUses(PermittedUsesType value) {
+        this.permittedUses = value;
+    }
+
+    /**
+     * Gets the value of the other property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getOther() {
+        return other;
+    }
+
+    /**
+     * Sets the value of the other property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setOther(Object value) {
+        this.other = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedApplicationsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedApplicationsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedApplicationsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,104 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PermittedApplicationsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedApplicationsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedApplication" type="{http://docs.oasis-open.org/ekmi/2008/01}ApplicationsType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedApplicationsType", propOrder = {
+    "permittedApplication"
+})
+public class PermittedApplicationsType {
+
+    @XmlElement(name = "PermittedApplication")
+    protected List<ApplicationsType> permittedApplication;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedApplication property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedApplication property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedApplication().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link ApplicationsType }
+     * 
+     * 
+     */
+    public List<ApplicationsType> getPermittedApplication() {
+        if (permittedApplication == null) {
+            permittedApplication = new ArrayList<ApplicationsType>();
+        }
+        return this.permittedApplication;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDatesType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDatesType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDatesType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,223 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for PermittedDatesType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedDatesType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedDate" maxOccurs="unbounded" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="StartDate">
+ *                     &lt;simpleType>
+ *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}date">
+ *                         &lt;pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+ *                       &lt;/restriction>
+ *                     &lt;/simpleType>
+ *                   &lt;/element>
+ *                   &lt;element name="EndDate">
+ *                     &lt;simpleType>
+ *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}date">
+ *                         &lt;pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+ *                       &lt;/restriction>
+ *                     &lt;/simpleType>
+ *                   &lt;/element>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedDatesType", propOrder = {
+    "permittedDate"
+})
+public class PermittedDatesType {
+
+    @XmlElement(name = "PermittedDate")
+    protected List<PermittedDatesType.PermittedDate> permittedDate;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedDate property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedDate property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedDate().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PermittedDatesType.PermittedDate }
+     * 
+     * 
+     */
+    public List<PermittedDatesType.PermittedDate> getPermittedDate() {
+        if (permittedDate == null) {
+            permittedDate = new ArrayList<PermittedDatesType.PermittedDate>();
+        }
+        return this.permittedDate;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="StartDate">
+     *           &lt;simpleType>
+     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}date">
+     *               &lt;pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+     *             &lt;/restriction>
+     *           &lt;/simpleType>
+     *         &lt;/element>
+     *         &lt;element name="EndDate">
+     *           &lt;simpleType>
+     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}date">
+     *               &lt;pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+     *             &lt;/restriction>
+     *           &lt;/simpleType>
+     *         &lt;/element>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "startDate",
+        "endDate"
+    })
+    public static class PermittedDate {
+
+        @XmlElement(name = "StartDate", required = true)
+        protected XMLGregorianCalendar startDate;
+        @XmlElement(name = "EndDate", required = true)
+        protected XMLGregorianCalendar endDate;
+
+        /**
+         * Gets the value of the startDate property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getStartDate() {
+            return startDate;
+        }
+
+        /**
+         * Sets the value of the startDate property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setStartDate(XMLGregorianCalendar value) {
+            this.startDate = value;
+        }
+
+        /**
+         * Gets the value of the endDate property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getEndDate() {
+            return endDate;
+        }
+
+        /**
+         * Sets the value of the endDate property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setEndDate(XMLGregorianCalendar value) {
+            this.endDate = value;
+        }
+
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDayType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDayType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDayType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,79 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PermittedDayType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="PermittedDayType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     &lt;enumeration value="Sunday"/>
+ *     &lt;enumeration value="Monday"/>
+ *     &lt;enumeration value="Tuesday"/>
+ *     &lt;enumeration value="Wednesday"/>
+ *     &lt;enumeration value="Thursday"/>
+ *     &lt;enumeration value="Friday"/>
+ *     &lt;enumeration value="Saturday"/>
+ *     &lt;enumeration value="Weekday"/>
+ *     &lt;enumeration value="Weekend"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+ at XmlType(name = "PermittedDayType")
+ at XmlEnum
+public enum PermittedDayType {
+
+    @XmlEnumValue("Sunday")
+    SUNDAY("Sunday"),
+    @XmlEnumValue("Monday")
+    MONDAY("Monday"),
+    @XmlEnumValue("Tuesday")
+    TUESDAY("Tuesday"),
+    @XmlEnumValue("Wednesday")
+    WEDNESDAY("Wednesday"),
+    @XmlEnumValue("Thursday")
+    THURSDAY("Thursday"),
+    @XmlEnumValue("Friday")
+    FRIDAY("Friday"),
+    @XmlEnumValue("Saturday")
+    SATURDAY("Saturday"),
+    @XmlEnumValue("Weekday")
+    WEEKDAY("Weekday"),
+    @XmlEnumValue("Weekend")
+    WEEKEND("Weekend");
+    private final String value;
+
+    PermittedDayType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static PermittedDayType fromValue(String v) {
+        for (PermittedDayType c: PermittedDayType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDaysType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDaysType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDaysType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,104 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PermittedDaysType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedDaysType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedDay" type="{http://docs.oasis-open.org/ekmi/2008/01}PermittedDayType" maxOccurs="unbounded" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedDaysType", propOrder = {
+    "permittedDay"
+})
+public class PermittedDaysType {
+
+    @XmlElement(name = "PermittedDay")
+    protected List<PermittedDayType> permittedDay;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedDay property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedDay property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedDay().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PermittedDayType }
+     * 
+     * 
+     */
+    public List<PermittedDayType> getPermittedDay() {
+        if (permittedDay == null) {
+            permittedDay = new ArrayList<PermittedDayType>();
+        }
+        return this.permittedDay;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDurationType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDurationType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedDurationType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,103 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * 
+ *                 A complex-type to wrap the DurationType with the "any"
+ *                 attribute.
+ *             
+ * 
+ * <p>Java class for PermittedDurationType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedDurationType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://docs.oasis-open.org/ekmi/2008/01>DurationType">
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedDurationType", propOrder = {
+    "value"
+})
+public class PermittedDurationType {
+
+    @XmlValue
+    protected BigInteger value;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * 
+     *                 The number of seconds a symmetric key may be used for, once
+     *                 the client application starts using the key.
+     *             
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setValue(BigInteger value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLevelsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLevelsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLevelsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,132 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PermittedLevelsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedLevelsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedLevel" type="{http://docs.oasis-open.org/ekmi/2008/01}LevelClassificationType" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedLevelsType", propOrder = {
+    "permittedLevel",
+    "other"
+})
+public class PermittedLevelsType {
+
+    @XmlElement(name = "PermittedLevel")
+    protected List<LevelClassificationType> permittedLevel;
+    @XmlElement(name = "Other")
+    protected Object other;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedLevel property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedLevel property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedLevel().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link LevelClassificationType }
+     * 
+     * 
+     */
+    public List<LevelClassificationType> getPermittedLevel() {
+        if (permittedLevel == null) {
+            permittedLevel = new ArrayList<LevelClassificationType>();
+        }
+        return this.permittedLevel;
+    }
+
+    /**
+     * Gets the value of the other property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Object }
+     *     
+     */
+    public Object getOther() {
+        return other;
+    }
+
+    /**
+     * Sets the value of the other property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Object }
+     *     
+     */
+    public void setOther(Object value) {
+        this.other = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLocationsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLocationsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedLocationsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,264 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                 A list of physical locations of the client, where the key 
+ *                 may be used.  This is specific to the application and may 
+ *                 consist of GPS coordinates, Building numbers, secure rooms, 
+ *                 cities, etc.  Its meaning is application-defined.
+ *                 
+ *                 When the "any" attribute is set to "true", no PermittedLocation
+ *                 elements must appear in this element.
+ *             
+ * 
+ * <p>Java class for PermittedLocationsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedLocationsType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedLocation" maxOccurs="unbounded" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="LocationName">
+ *                     &lt;simpleType>
+ *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *                         &lt;maxLength value="256"/>
+ *                         &lt;whiteSpace value="preserve"/>
+ *                       &lt;/restriction>
+ *                     &lt;/simpleType>
+ *                   &lt;/element>
+ *                   &lt;group ref="{http://docs.oasis-open.org/ekmi/2008/01}LocationCoordinateGroup" maxOccurs="unbounded" minOccurs="0"/>
+ *                   &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedLocationsType", propOrder = {
+    "permittedLocation"
+})
+public class PermittedLocationsType {
+
+    @XmlElement(name = "PermittedLocation")
+    protected List<PermittedLocationsType.PermittedLocation> permittedLocation;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedLocation property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedLocation property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedLocation().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PermittedLocationsType.PermittedLocation }
+     * 
+     * 
+     */
+    public List<PermittedLocationsType.PermittedLocation> getPermittedLocation() {
+        if (permittedLocation == null) {
+            permittedLocation = new ArrayList<PermittedLocationsType.PermittedLocation>();
+        }
+        return this.permittedLocation;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="LocationName">
+     *           &lt;simpleType>
+     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+     *               &lt;maxLength value="256"/>
+     *               &lt;whiteSpace value="preserve"/>
+     *             &lt;/restriction>
+     *           &lt;/simpleType>
+     *         &lt;/element>
+     *         &lt;group ref="{http://docs.oasis-open.org/ekmi/2008/01}LocationCoordinateGroup" maxOccurs="unbounded" minOccurs="0"/>
+     *         &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "locationName",
+        "locationCoordinateGroup",
+        "other"
+    })
+    public static class PermittedLocation {
+
+        @XmlElement(name = "LocationName", required = true)
+        protected String locationName;
+        @XmlElementRefs({
+            @XmlElementRef(name = "Latitude", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+            @XmlElementRef(name = "Longitude", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class)
+        })
+        protected List<JAXBElement<BigDecimal>> locationCoordinateGroup;
+        @XmlElement(name = "Other")
+        protected Object other;
+
+        /**
+         * Gets the value of the locationName property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link String }
+         *     
+         */
+        public String getLocationName() {
+            return locationName;
+        }
+
+        /**
+         * Sets the value of the locationName property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link String }
+         *     
+         */
+        public void setLocationName(String value) {
+            this.locationName = value;
+        }
+
+        /**
+         * Gets the value of the locationCoordinateGroup property.
+         * 
+         * <p>
+         * This accessor method returns a reference to the live list,
+         * not a snapshot. Therefore any modification you make to the
+         * returned list will be present inside the JAXB object.
+         * This is why there is not a <CODE>set</CODE> method for the locationCoordinateGroup property.
+         * 
+         * <p>
+         * For example, to add a new item, do as follows:
+         * <pre>
+         *    getLocationCoordinateGroup().add(newItem);
+         * </pre>
+         * 
+         * 
+         * <p>
+         * Objects of the following type(s) are allowed in the list
+         * {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}
+         * {@link JAXBElement }{@code <}{@link BigDecimal }{@code >}
+         * 
+         * 
+         */
+        public List<JAXBElement<BigDecimal>> getLocationCoordinateGroup() {
+            if (locationCoordinateGroup == null) {
+                locationCoordinateGroup = new ArrayList<JAXBElement<BigDecimal>>();
+            }
+            return this.locationCoordinateGroup;
+        }
+
+        /**
+         * Gets the value of the other property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link Object }
+         *     
+         */
+        public Object getOther() {
+            return other;
+        }
+
+        /**
+         * Sets the value of the other property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link Object }
+         *     
+         */
+        public void setOther(Object value) {
+            this.other = value;
+        }
+
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedNumberOfTransactionsType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedNumberOfTransactionsType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedNumberOfTransactionsType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,103 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.math.BigInteger;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+
+/**
+ * 
+ *                 A complex-type to wrap the NumberOfTransactionsType with 
+ *                 the "any" attribute.
+ *             
+ * 
+ * <p>Java class for PermittedNumberOfTransactionsType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedNumberOfTransactionsType">
+ *   &lt;simpleContent>
+ *     &lt;extension base="&lt;http://docs.oasis-open.org/ekmi/2008/01>NumberOfTransactionsType">
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/extension>
+ *   &lt;/simpleContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedNumberOfTransactionsType", propOrder = {
+    "value"
+})
+public class PermittedNumberOfTransactionsType {
+
+    @XmlValue
+    protected BigInteger value;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * 
+     *                 The number of encryption transactions permitted with this 
+     *                 symmetric key.  It does not limit decryption transactions.
+     *             
+     * 
+     * @return
+     *     possible object is
+     *     {@link BigInteger }
+     *     
+     */
+    public BigInteger getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link BigInteger }
+     *     
+     */
+    public void setValue(BigInteger value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedTimesType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedTimesType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedTimesType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,223 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+
+/**
+ * <p>Java class for PermittedTimesType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedTimesType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedTime" maxOccurs="unbounded" minOccurs="0">
+ *           &lt;complexType>
+ *             &lt;complexContent>
+ *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *                 &lt;sequence>
+ *                   &lt;element name="StartTime">
+ *                     &lt;simpleType>
+ *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}time">
+ *                         &lt;pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+ *                       &lt;/restriction>
+ *                     &lt;/simpleType>
+ *                   &lt;/element>
+ *                   &lt;element name="EndTime">
+ *                     &lt;simpleType>
+ *                       &lt;restriction base="{http://www.w3.org/2001/XMLSchema}time">
+ *                         &lt;pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+ *                       &lt;/restriction>
+ *                     &lt;/simpleType>
+ *                   &lt;/element>
+ *                 &lt;/sequence>
+ *               &lt;/restriction>
+ *             &lt;/complexContent>
+ *           &lt;/complexType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedTimesType", propOrder = {
+    "permittedTime"
+})
+public class PermittedTimesType {
+
+    @XmlElement(name = "PermittedTime")
+    protected List<PermittedTimesType.PermittedTime> permittedTime;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the permittedTime property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the permittedTime property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getPermittedTime().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link PermittedTimesType.PermittedTime }
+     * 
+     * 
+     */
+    public List<PermittedTimesType.PermittedTime> getPermittedTime() {
+        if (permittedTime == null) {
+            permittedTime = new ArrayList<PermittedTimesType.PermittedTime>();
+        }
+        return this.permittedTime;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+
+    /**
+     * <p>Java class for anonymous complex type.
+     * 
+     * <p>The following schema fragment specifies the expected content contained within this class.
+     * 
+     * <pre>
+     * &lt;complexType>
+     *   &lt;complexContent>
+     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+     *       &lt;sequence>
+     *         &lt;element name="StartTime">
+     *           &lt;simpleType>
+     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}time">
+     *               &lt;pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+     *             &lt;/restriction>
+     *           &lt;/simpleType>
+     *         &lt;/element>
+     *         &lt;element name="EndTime">
+     *           &lt;simpleType>
+     *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}time">
+     *               &lt;pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+     *             &lt;/restriction>
+     *           &lt;/simpleType>
+     *         &lt;/element>
+     *       &lt;/sequence>
+     *     &lt;/restriction>
+     *   &lt;/complexContent>
+     * &lt;/complexType>
+     * </pre>
+     * 
+     * 
+     */
+    @XmlAccessorType(XmlAccessType.FIELD)
+    @XmlType(name = "", propOrder = {
+        "startTime",
+        "endTime"
+    })
+    public static class PermittedTime {
+
+        @XmlElement(name = "StartTime", required = true)
+        protected XMLGregorianCalendar startTime;
+        @XmlElement(name = "EndTime", required = true)
+        protected XMLGregorianCalendar endTime;
+
+        /**
+         * Gets the value of the startTime property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getStartTime() {
+            return startTime;
+        }
+
+        /**
+         * Sets the value of the startTime property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setStartTime(XMLGregorianCalendar value) {
+            this.startTime = value;
+        }
+
+        /**
+         * Gets the value of the endTime property.
+         * 
+         * @return
+         *     possible object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public XMLGregorianCalendar getEndTime() {
+            return endTime;
+        }
+
+        /**
+         * Sets the value of the endTime property.
+         * 
+         * @param value
+         *     allowed object is
+         *     {@link XMLGregorianCalendar }
+         *     
+         */
+        public void setEndTime(XMLGregorianCalendar value) {
+            this.endTime = value;
+        }
+
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedUsesType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedUsesType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/PermittedUsesType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,122 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlMixed;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for PermittedUsesType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="PermittedUsesType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="PermittedUse" maxOccurs="unbounded" minOccurs="0">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="256"/>
+ *               &lt;whiteSpace value="preserve"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="Other" type="{http://www.w3.org/2001/XMLSchema}anyType" minOccurs="0"/>
+ *       &lt;/sequence>
+ *       &lt;attribute ref="{http://docs.oasis-open.org/ekmi/2008/01}any use="required""/>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "PermittedUsesType", propOrder = {
+    "content"
+})
+public class PermittedUsesType {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "Other", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "PermittedUse", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class)
+    })
+    @XmlMixed
+    protected List<Serializable> content;
+    @XmlAttribute(namespace = "http://docs.oasis-open.org/ekmi/2008/01", required = true)
+    protected String any;
+
+    /**
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * {@link JAXBElement }{@code <}{@link Object }{@code >}
+     * {@link JAXBElement }{@code <}{@link String }{@code >}
+     * 
+     * 
+     */
+    public List<Serializable> getContent() {
+        if (content == null) {
+            content = new ArrayList<Serializable>();
+        }
+        return this.content;
+    }
+
+    /**
+     * Gets the value of the any property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getAny() {
+        return any;
+    }
+
+    /**
+     * Sets the value of the any property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setAny(String value) {
+        this.any = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/StatusType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/StatusType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/StatusType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,100 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlEnumValue;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for StatusType.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * <p>
+ * <pre>
+ * &lt;simpleType name="StatusType">
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *     &lt;enumeration value="Active"/>
+ *     &lt;enumeration value="Default"/>
+ *     &lt;enumeration value="Inactive"/>
+ *     &lt;enumeration value="Other"/>
+ *   &lt;/restriction>
+ * &lt;/simpleType>
+ * </pre>
+ * 
+ */
+ at XmlType(name = "StatusType")
+ at XmlEnum
+public enum StatusType {
+
+
+    /**
+     * 
+     *                         An active policy.  If this element is in the
+     *                         KeyCachePolicy object, it indicates that symmetric 
+     *                         keys may be cached with this KCP.  If it is in the
+     *                         KeyUsePolicy object, it indicates that the symmetric
+     *                         key may be used for encryption.
+     *                     
+     * 
+     */
+    @XmlEnumValue("Active")
+    ACTIVE("Active"),
+
+    /**
+     * 
+     *                         The default policy in the absence of a named KCP or 
+     *                         KUP.  It is automatically active, unless over-ridden.
+     *                     
+     * 
+     */
+    @XmlEnumValue("Default")
+    DEFAULT("Default"),
+
+    /**
+     * 
+     *                         A policy that, in the case of the KCP, must not be 
+     *                         used for caching any symmetric keys or in the case
+     *                         of a KUP for encryption.
+     *                     
+     * 
+     */
+    @XmlEnumValue("Inactive")
+    INACTIVE("Inactive"),
+
+    /**
+     * 
+     *                         A policy that has an implementation-specific action.  
+     *                         Recommended only for test-use.
+     *                     
+     * 
+     */
+    @XmlEnumValue("Other")
+    OTHER("Other");
+    private final String value;
+
+    StatusType(String v) {
+        value = v;
+    }
+
+    public String value() {
+        return value;
+    }
+
+    public static StatusType fromValue(String v) {
+        for (StatusType c: StatusType.values()) {
+            if (c.value.equals(v)) {
+                return c;
+            }
+        }
+        throw new IllegalArgumentException(v);
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyErrorType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyErrorType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyErrorType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,198 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                 A response with an error message in the event that a request
+ *                 was not successful.
+ *             
+ * 
+ * <p>Java class for SymkeyErrorType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SymkeyErrorType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="SymkeyRequestID" type="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyRequestIDType"/>
+ *         &lt;element name="RequestedGlobalKeyID" type="{http://docs.oasis-open.org/ekmi/2008/01}GlobalKeyIDType"/>
+ *         &lt;element name="RequestedKeyClass" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassType" minOccurs="0"/>
+ *         &lt;element name="ErrorCode">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="255"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *         &lt;element name="ErrorMessage">
+ *           &lt;simpleType>
+ *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string">
+ *               &lt;maxLength value="1024"/>
+ *             &lt;/restriction>
+ *           &lt;/simpleType>
+ *         &lt;/element>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "SymkeyErrorType", propOrder = {
+    "symkeyRequestID",
+    "requestedGlobalKeyID",
+    "requestedKeyClass",
+    "errorCode",
+    "errorMessage"
+})
+public class SymkeyErrorType {
+
+    @XmlElement(name = "SymkeyRequestID", required = true)
+    protected String symkeyRequestID;
+    @XmlElement(name = "RequestedGlobalKeyID", required = true)
+    protected String requestedGlobalKeyID;
+    @XmlElement(name = "RequestedKeyClass")
+    protected String requestedKeyClass;
+    @XmlElement(name = "ErrorCode", required = true)
+    protected String errorCode;
+    @XmlElement(name = "ErrorMessage", required = true)
+    protected String errorMessage;
+
+    /**
+     * Gets the value of the symkeyRequestID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSymkeyRequestID() {
+        return symkeyRequestID;
+    }
+
+    /**
+     * Sets the value of the symkeyRequestID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSymkeyRequestID(String value) {
+        this.symkeyRequestID = value;
+    }
+
+    /**
+     * Gets the value of the requestedGlobalKeyID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRequestedGlobalKeyID() {
+        return requestedGlobalKeyID;
+    }
+
+    /**
+     * Sets the value of the requestedGlobalKeyID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRequestedGlobalKeyID(String value) {
+        this.requestedGlobalKeyID = value;
+    }
+
+    /**
+     * Gets the value of the requestedKeyClass property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRequestedKeyClass() {
+        return requestedKeyClass;
+    }
+
+    /**
+     * Sets the value of the requestedKeyClass property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRequestedKeyClass(String value) {
+        this.requestedKeyClass = value;
+    }
+
+    /**
+     * Gets the value of the errorCode property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getErrorCode() {
+        return errorCode;
+    }
+
+    /**
+     * Sets the value of the errorCode property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setErrorCode(String value) {
+        this.errorCode = value;
+    }
+
+    /**
+     * Gets the value of the errorMessage property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getErrorMessage() {
+        return errorMessage;
+    }
+
+    /**
+     * Sets the value of the errorMessage property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setErrorMessage(String value) {
+        this.errorMessage = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyRequest.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyRequest.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyRequest.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,169 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:00:39 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;choice>
+ *         &lt;sequence>
+ *           &lt;element name="GlobalKeyID" type="{http://docs.oasis-open.org/ekmi/2008/01}GlobalKeyIDType" maxOccurs="unbounded"/>
+ *           &lt;element name="KeyClasses" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassesType" minOccurs="0"/>
+ *           &lt;element name="X509EncryptionCertificate" type="{http://docs.oasis-open.org/ekmi/2008/01}X509CertificateType" minOccurs="0"/>
+ *         &lt;/sequence>
+ *         &lt;sequence>
+ *           &lt;element name="SymkeyRequestID" type="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyRequestIDType" maxOccurs="unbounded"/>
+ *         &lt;/sequence>
+ *       &lt;/choice>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "globalKeyID",
+    "keyClasses",
+    "x509EncryptionCertificate",
+    "symkeyRequestID"
+})
+ at XmlRootElement(name = "SymkeyRequest")
+public class SymkeyRequest {
+
+    @XmlElement(name = "GlobalKeyID")
+    protected List<String> globalKeyID;
+    @XmlElement(name = "KeyClasses")
+    protected KeyClassesType keyClasses;
+    @XmlElement(name = "X509EncryptionCertificate")
+    protected byte[] x509EncryptionCertificate;
+    @XmlElement(name = "SymkeyRequestID")
+    protected List<String> symkeyRequestID;
+
+    /**
+     * Gets the value of the globalKeyID property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the globalKeyID property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getGlobalKeyID().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getGlobalKeyID() {
+        if (globalKeyID == null) {
+            globalKeyID = new ArrayList<String>();
+        }
+        return this.globalKeyID;
+    }
+
+    /**
+     * Gets the value of the keyClasses property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link KeyClassesType }
+     *     
+     */
+    public KeyClassesType getKeyClasses() {
+        return keyClasses;
+    }
+
+    /**
+     * Sets the value of the keyClasses property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link KeyClassesType }
+     *     
+     */
+    public void setKeyClasses(KeyClassesType value) {
+        this.keyClasses = value;
+    }
+
+    /**
+     * Gets the value of the x509EncryptionCertificate property.
+     * 
+     * @return
+     *     possible object is
+     *     byte[]
+     */
+    public byte[] getX509EncryptionCertificate() {
+        return x509EncryptionCertificate;
+    }
+
+    /**
+     * Sets the value of the x509EncryptionCertificate property.
+     * 
+     * @param value
+     *     allowed object is
+     *     byte[]
+     */
+    public void setX509EncryptionCertificate(byte[] value) {
+        this.x509EncryptionCertificate = ((byte[]) value);
+    }
+
+    /**
+     * Gets the value of the symkeyRequestID property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the symkeyRequestID property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getSymkeyRequestID().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getSymkeyRequestID() {
+        if (symkeyRequestID == null) {
+            symkeyRequestID = new ArrayList<String>();
+        }
+        return this.symkeyRequestID;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyResponse.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyResponse.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyResponse.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,107 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElementRef;
+import javax.xml.bind.annotation.XmlElementRefs;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * <p>Java class for anonymous complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType>
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;choice>
+ *         &lt;sequence>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}Symkey" maxOccurs="unbounded"/>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyWorkInProgress" maxOccurs="unbounded" minOccurs="0"/>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyError" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;/sequence>
+ *         &lt;sequence>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyWorkInProgress" maxOccurs="unbounded"/>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyError" maxOccurs="unbounded" minOccurs="0"/>
+ *         &lt;/sequence>
+ *         &lt;sequence>
+ *           &lt;element ref="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyError" maxOccurs="unbounded"/>
+ *         &lt;/sequence>
+ *       &lt;/choice>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "", propOrder = {
+    "content"
+})
+ at XmlRootElement(name = "SymkeyResponse")
+public class SymkeyResponse {
+
+    @XmlElementRefs({
+        @XmlElementRef(name = "SymkeyError", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "SymkeyWorkInProgress", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class),
+        @XmlElementRef(name = "Symkey", namespace = "http://docs.oasis-open.org/ekmi/2008/01", type = JAXBElement.class)
+    })
+    protected List<JAXBElement<?>> content;
+
+    /**
+     * Gets the rest of the content model. 
+     * 
+     * <p>
+     * You are getting this "catch-all" property because of the following reason: 
+     * The field name "SymkeyWorkInProgress" is used by two different parts of a schema. See: 
+     * line 78 of file:/home/anil/ekmi/symkeyResponse.xsd
+     * line 74 of file:/home/anil/ekmi/symkeyResponse.xsd
+     * <p>
+     * To get rid of this property, apply a property customization to one 
+     * of both of the following declarations to change their names: 
+     * Gets the value of the content property.
+     * 
+     * <p>
+     * This accessor method returns a reference to the live list,
+     * not a snapshot. Therefore any modification you make to the
+     * returned list will be present inside the JAXB object.
+     * This is why there is not a <CODE>set</CODE> method for the content property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getContent().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link SymkeyWorkInProgressType }{@code >}
+     * {@link JAXBElement }{@code <}{@link SymkeyErrorType }{@code >}
+     * {@link JAXBElement }{@code <}{@link SymkeyType }{@code >}
+     * 
+     * 
+     */
+    public List<JAXBElement<?>> getContent() {
+        if (content == null) {
+            content = new ArrayList<JAXBElement<?>>();
+        }
+        return this.content;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,192 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType; 
+
+import org.jboss.identity.xmlsec.w3.xmlenc.CipherDataType;
+import org.jboss.identity.xmlsec.w3.xmlenc.EncryptionMethodType;
+
+
+/**
+ * 
+ *                 A symmetric key object, which is the succesfully response
+ *                 of a request for a key from an SKMS client to an SKS server.
+ *                 While the
+ *             
+ * 
+ * <p>Java class for SymkeyType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SymkeyType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="SymkeyRequestID" type="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyRequestIDType"/>
+ *         &lt;element name="GlobalKeyID" type="{http://docs.oasis-open.org/ekmi/2008/01}GlobalKeyIDType"/>
+ *         &lt;element name="KeyUsePolicy" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyUsePolicyType"/>
+ *         &lt;element name="EncryptionMethod" type="{http://www.w3.org/2001/04/xmlenc#}EncryptionMethodType"/>
+ *         &lt;element ref="{http://www.w3.org/2001/04/xmlenc#}CipherData"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "SymkeyType", propOrder = {
+    "symkeyRequestID",
+    "globalKeyID",
+    "keyUsePolicy",
+    "encryptionMethod",
+    "cipherData"
+})
+public class SymkeyType {
+
+    @XmlElement(name = "SymkeyRequestID", required = true)
+    protected String symkeyRequestID;
+    @XmlElement(name = "GlobalKeyID", required = true)
+    protected String globalKeyID;
+    @XmlElement(name = "KeyUsePolicy", required = true)
+    protected KeyUsePolicyType keyUsePolicy;
+    @XmlElement(name = "EncryptionMethod", required = true)
+    protected EncryptionMethodType encryptionMethod;
+    @XmlElement(name = "CipherData", namespace = "http://www.w3.org/2001/04/xmlenc#", required = true)
+    protected CipherDataType cipherData;
+
+    /**
+     * Gets the value of the symkeyRequestID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSymkeyRequestID() {
+        return symkeyRequestID;
+    }
+
+    /**
+     * Sets the value of the symkeyRequestID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSymkeyRequestID(String value) {
+        this.symkeyRequestID = value;
+    }
+
+    /**
+     * Gets the value of the globalKeyID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getGlobalKeyID() {
+        return globalKeyID;
+    }
+
+    /**
+     * Sets the value of the globalKeyID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setGlobalKeyID(String value) {
+        this.globalKeyID = value;
+    }
+
+    /**
+     * Gets the value of the keyUsePolicy property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link KeyUsePolicyType }
+     *     
+     */
+    public KeyUsePolicyType getKeyUsePolicy() {
+        return keyUsePolicy;
+    }
+
+    /**
+     * Sets the value of the keyUsePolicy property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link KeyUsePolicyType }
+     *     
+     */
+    public void setKeyUsePolicy(KeyUsePolicyType value) {
+        this.keyUsePolicy = value;
+    }
+
+    /**
+     * Gets the value of the encryptionMethod property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link EncryptionMethodType }
+     *     
+     */
+    public EncryptionMethodType getEncryptionMethod() {
+        return encryptionMethod;
+    }
+
+    /**
+     * Sets the value of the encryptionMethod property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link EncryptionMethodType }
+     *     
+     */
+    public void setEncryptionMethod(EncryptionMethodType value) {
+        this.encryptionMethod = value;
+    }
+
+    /**
+     * 
+     *                         The encrypted symmetric key.
+     *                     
+     * 
+     * @return
+     *     possible object is
+     *     {@link CipherDataType }
+     *     
+     */
+    public CipherDataType getCipherData() {
+        return cipherData;
+    }
+
+    /**
+     * Sets the value of the cipherData property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link CipherDataType }
+     *     
+     */
+    public void setCipherData(CipherDataType value) {
+        this.cipherData = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyWorkInProgressType.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyWorkInProgressType.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/SymkeyWorkInProgressType.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,151 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+
+package org.jboss.identity.skms.v1.model;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
+
+
+/**
+ * 
+ *                 A response to an asynchronous request for a symmetric key,
+ *                 indicating that the request is being worked on by the SKS
+ *                 server.
+ *             
+ * 
+ * <p>Java class for SymkeyWorkInProgressType complex type.
+ * 
+ * <p>The following schema fragment specifies the expected content contained within this class.
+ * 
+ * <pre>
+ * &lt;complexType name="SymkeyWorkInProgressType">
+ *   &lt;complexContent>
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
+ *       &lt;sequence>
+ *         &lt;element name="RequestedGlobalKeyID" type="{http://docs.oasis-open.org/ekmi/2008/01}GlobalKeyIDType"/>
+ *         &lt;element name="RequestedKeyClass" type="{http://docs.oasis-open.org/ekmi/2008/01}KeyClassType" minOccurs="0"/>
+ *         &lt;element name="SymkeyRequestID" type="{http://docs.oasis-open.org/ekmi/2008/01}SymkeyRequestIDType"/>
+ *         &lt;element name="RequestCheckInterval" type="{http://docs.oasis-open.org/ekmi/2008/01}RequestCheckIntervalType"/>
+ *       &lt;/sequence>
+ *     &lt;/restriction>
+ *   &lt;/complexContent>
+ * &lt;/complexType>
+ * </pre>
+ * 
+ * 
+ */
+ at XmlAccessorType(XmlAccessType.FIELD)
+ at XmlType(name = "SymkeyWorkInProgressType", propOrder = {
+    "requestedGlobalKeyID",
+    "requestedKeyClass",
+    "symkeyRequestID",
+    "requestCheckInterval"
+})
+public class SymkeyWorkInProgressType {
+
+    @XmlElement(name = "RequestedGlobalKeyID", required = true)
+    protected String requestedGlobalKeyID;
+    @XmlElement(name = "RequestedKeyClass")
+    protected String requestedKeyClass;
+    @XmlElement(name = "SymkeyRequestID", required = true)
+    protected String symkeyRequestID;
+    @XmlElement(name = "RequestCheckInterval")
+    protected int requestCheckInterval;
+
+    /**
+     * Gets the value of the requestedGlobalKeyID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRequestedGlobalKeyID() {
+        return requestedGlobalKeyID;
+    }
+
+    /**
+     * Sets the value of the requestedGlobalKeyID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRequestedGlobalKeyID(String value) {
+        this.requestedGlobalKeyID = value;
+    }
+
+    /**
+     * Gets the value of the requestedKeyClass property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRequestedKeyClass() {
+        return requestedKeyClass;
+    }
+
+    /**
+     * Sets the value of the requestedKeyClass property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRequestedKeyClass(String value) {
+        this.requestedKeyClass = value;
+    }
+
+    /**
+     * Gets the value of the symkeyRequestID property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getSymkeyRequestID() {
+        return symkeyRequestID;
+    }
+
+    /**
+     * Sets the value of the symkeyRequestID property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setSymkeyRequestID(String value) {
+        this.symkeyRequestID = value;
+    }
+
+    /**
+     * Gets the value of the requestCheckInterval property.
+     * 
+     */
+    public int getRequestCheckInterval() {
+        return requestCheckInterval;
+    }
+
+    /**
+     * Sets the value of the requestCheckInterval property.
+     * 
+     */
+    public void setRequestCheckInterval(int value) {
+        this.requestCheckInterval = value;
+    }
+
+}

Added: xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/package-info.java
===================================================================
--- xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/package-info.java	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/java/org/jboss/identity/skms/v1/model/package-info.java	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,9 @@
+//
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, vhudson-jaxb-ri-2.1-661 
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
+// Any modifications to this file will be lost upon recompilation of the source schema. 
+// Generated on: 2009.01.18 at 10:01:04 PM CST 
+//
+
+ at javax.xml.bind.annotation.XmlSchema(namespace = "http://docs.oasis-open.org/ekmi/2008/01", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.jboss.identity.skms.v1.model;

Added: xmlkey/trunk/skms/src/main/resources/schema/ekmi/EKMICoreLibrary.xsd
===================================================================
--- xmlkey/trunk/skms/src/main/resources/schema/ekmi/EKMICoreLibrary.xsd	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/resources/schema/ekmi/EKMICoreLibrary.xsd	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,1678 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    Document   : EKMICoreLibrary.xsd
+    Author     : Arshad Noor
+    Version    : DRAFT version 8.0
+    Description: This document defines the core XML Schema data-types for
+                 the EKMI TC's Symmetric Key Services Markup Language (SKSML).
+                 
+    Modified on : November 18, 2008, 10:17 AM             
+    Changes in DRAFT 8.0  (current version)
+    
+    01) Created the X509CertificateType to support sending the encryption 
+        certificate to the SKS server when requesting a symmetric-key.  This
+        allows the SKMS to be encrypt the response to the client without
+        having to have the requester's encryption certificate in the SKMS DB.
+        
+    Modified on : November 03, 2008, 3:17 PM             
+    Changes in DRAFT 7.0
+    
+    01) Created the SymkeyWorkInProgressType to support asynchronous requests
+        and responses between SKCLs and SKS servers.  While the SKSML request 
+        will still be enclosed in a SOAP element with a digital signature, the 
+        request may now be sent over other protocols besides HTTP (such as SMTP).
+        
+    02) Created a SymkeyRequestID element and SymkeyRequestIDType to allow the
+        client and server to track an asynchronous request and response.
+        
+    03) Created the RequestCheckIntervalType to allows the SKS server to tell
+        clients how frequently they may poll a server on a work-in-progress 
+        request.
+        
+    04) Modified SymkeyType to include the SymkeyRequestID element.
+    
+    05) Modified SymekyError to include the SymkeyRequestID element.
+        
+    Modified on : June 23, 2008, 3:17 PM             
+    Changes in DRAFT 6.0
+    
+    01) Added the "any" attribute which has either a "true" or "false" value.
+        This attribute will be used in all the "Permitted..." sub-elements of
+        the Permissions element.
+        
+    02) Added a DurationType element.  This used to be the PermittedDurationsType
+        element in earlier versions.
+        
+    03) Added a NumberOfTransactionsType element.  This used to be the 
+        PermittedNumberOfTransactionsType element in earlier versions.
+        
+    04) Changed PermittedDurationsType to wrap DurationType with the "any"
+        attribute.
+        
+    05) Changed PermittedNumberOfTransactionsType to wrap NumberOfTransactionsType
+        with the "any" attribute.
+        
+    06) Modified the Permissions element to now require all sub-elements to
+        be "nillable" if the "any" attribute in them is "true".
+    
+    07) Moved the SymkeyType and SymkeyErrorType from symkeyResponse to this 
+        EKMICoreLibrary.xsd file.
+    
+    08) Removed the globally defined KeyUsePolicy element; it was not required
+        since the SymkeyResponse refers to the KeyUsePolicyType directly.
+        
+    Modified on : June 18, 2008, 9:17 PM             
+    Changes in DRAFT 5.1
+    
+    01) Changed the element name of <PermittedTransactions> to
+        <PermittedNumberOfTransactions> to remove ambiguity that it may be
+        referring to transaction types or transaction names.
+        
+    02) Changed the order of the <Permissions> element to re-order the
+        elements in alphabetical order, after the change of the 
+        <PermittedTransactions> to <PermittedNumberOfTransactions>
+                 
+    Modified on : June 18, 2008, 8:17 PM             
+    Changes in DRAFT 5
+    
+    01) Added a KeyClass element to the KeyCachePolicyType to allow for an
+        EKMI to cache keys at different intervals based on the key-class the
+        key belongs to.
+        
+    02) Moved the KeyCachePolicy element to become a sub-element of a 
+        KeyCachePolicyResponse element, sent in response to a KeyCachePolicy 
+        request from a client.  The KeyCachePolicyResponse element contains
+        a sequence of KeyCachePolicyTypes to allow for multiple key-cache 
+        policies to be returned to the client, where each policy applies to 
+        a class of symmetric keys.  The previous DRAFTs only allowed for a 
+        single policy to be returned that applied to all keys of any class.
+        
+    Version    : DRAFT version 4.0
+    Description: This document defines the core XML Schema data-types for
+                 the EKMI TC's Symmetric Key Services Markup Language (SKSML).
+                 
+    Modified on : June 03, 2008, 8:17 PM             
+    Changes in DRAFT 4
+    
+    01) Added a PermittedDaysType element for the PermissionsType element
+        to accommodate the need to have a key available for use only on
+        weekdays, weekends, specific day-of-the-week, etc.
+        
+    02) Added a PermittedDayType element for the different days of the
+        week and the "weekday" and "weekend" catchalls.
+    
+    Created on : April 24, 2008, 8:17 PM
+    Author     : Arshad Noor
+    Version    : DRAFT version 3.1
+                 
+    Changes in 3.1:
+    
+    01) Expanded all acronyms in slement names to display the full names.
+    
+        
+    Created on : February 05, 2008, 2:17 PM
+    Author     : Arshad Noor
+    Version    : DRAFT version 3.0
+                 
+    Changes in 3.0:
+    
+    01) KeyUsePolicy to modified to include a "KeyClass" element to define a
+        user-defined value that identifies the key as belonging to a specific 
+        class.  
+        
+    02) SymkeyRequest is modified to include an optional element to request
+        symmetric keys of one or more classes.  A request message can now ask
+        for multiple keys of different classes within a single request called
+        "KeyClasses".  Within the KeyClasses element is a list of "KeyClass"
+        elements, each corresponding to some user-defined value known to the 
+        SKS server.  In earlier versions of the protocol, only a single key 
+        could be requested and KeyClass could not be defined.
+
+    03) SymkeyResponse is modified to allow the SKS server to return multiple
+        symmetric keys within a single response, each belonging to a specific
+        requested KeyClass.  The SymkeyResponse may consist of two types of
+        elements - a Symkey or a SymkeyError.  There may be multiple instances
+        of Symkey and SymkeyError in a SymkeyResponse.
+                 
+                 
+    Created on : December 27, 2007, 11:17 AM
+    Author     : Arshad Noor
+    Version    : DRAFT version 2.0
+                 
+    DRAFT Version 02 is very different from DRAFT Version 01.  It has
+    incorporated input from many TC members and consists of the following
+    changes (in the order of their appearance in this file):
+    
+    01) An XSD group called LocationCoordinateGroup has been created to 
+        enforce that a location coordinate includes the longitude and
+        latitude, if specified, or not at all.
+       
+    02) An XSD group called MessageDigestGroup has been created to enforce
+        that DigestAlgorithm and DigestValue are specified together, or
+        not at all.
+        
+    03) Three ID types have been created to accomodate for the concatenated
+        identifier types found within EKMI objects, each consisting of one,
+        two and three parts to their identifiers.  They are aptly named: 
+        OnePartIDType, TwoPartIDType and ThreePartIDType.
+       
+    04) An EncryptionAlgorithmType was created to enumerate the different
+        encryption algorithms supported within the Symmetric Key Management
+        System (SKMS).
+    
+    05) The GlobalKeyID in the GlobalKeyIDType was modified to include a Domain ID (DID) 
+        based on the IANA-issued Private Enterprise Number thus expanding 
+        the namespace to the internet, and extending the maximum length of 
+        the GlobalKeyID to be 62-bytes.
+       
+    06) Added a KeySizeType to enumerate the different sizes of symmetric
+        keys supported within the SKMS.
+       
+    07) Added a LevelClassificationType to enumerate the different security
+        classifications supported in the Bell-LaPadula model of access control.
+        
+    08) Added a PermittedDurationType to indicate the validity duration of
+        a symmetric key (in seconds) under the new Permissions model for 
+        KeyUsePolicy.
+    
+    09) Added a PermittedTransactionsType to indicate the number of encryption
+        transactions a client application can perform with a specific 
+        symmetric key under the new Permissions model for KeyUsePolicy.
+       
+    10) Added an ApplicationsType to identify details of an application that
+        is permitted to use a symmetric key within a specific KUP.  
+       
+    11) Added a PermittedApplicationsType to identify the list of applications
+        permitted to use a symmetric key defined within a KUP.  If this element
+        is missing, by default, all applications are assumed to be permitted
+        to use the symmetric key.
+        
+    12) Added a PermittedDatesType to implement the older date-based KUP.  It
+        identifies a list of dates during which the symmetric key defined 
+        within such a  KUP can be used.  If this element is missing, it is
+        assumed that the symmetric key can be used on any date.
+    
+    13) Added a PermittedLevelsType to identify the list of levels (from a
+        Multi-Level Security, or MLS, based system) that a symmetric key can
+        be used.  If this element is missing, it is assumed that the symmetric 
+        key can be used at all MLS levels.  The element also adds an "Other"
+        element of "anyType" to permit the addition of custom XML elements to 
+        extend the capability of this schema.
+    
+    14) Added a PermittedLocationsType to identify the list of locations that 
+        a symmetric key can be used.  If this element is missing, it is assumed 
+        that the symmetric key can be used in all locations.  The element also 
+        adds an "Other" element of "anyType" to permit the addition of custom 
+        XML elements to extend the capability of this schema.
+        
+    15) Added a PermittedTimesType to identify a list of times during the day,
+        during which the symmetric key defined within such a  KUP can be used.  
+        If this element is missing, it is assumed that the symmetric key can 
+        be used at all times during a 24-hour day.
+        
+    16) Added a PermittedUsesType to identify the list of uses that a symmetric 
+        key can be used for.  If this element is missing, it is assumed that 
+        the symmetric key can be used for all purposes.  The element also adds 
+        an "Other" element of "anyType" to permit the addition of custom XML 
+        elements to extend the capability of this schema.
+        
+    17) Added a PermissionsType which creates a new, more flexible and 
+        extensible model for defining key-use policies.  It replaces the old
+        Date, Duration and TxAllowed-based policies from DRAFT version 01 and
+        allows implementers to customize which applications can use a key, on
+        what dates, times, at which locations, for what purposes, etc. It also 
+        adds an "Other" element of "anyType" to permit the addition of custom 
+        XML elements to extend the capability of the Permissions model.
+        
+    18) Added a StatusType to enumerate the various status values that KCPs
+        and KUPs can have.
+        
+    19) Added a KeyCacheDetailType to organize the detail information that
+        SKMS clients need to manage their symmetric key-cache.
+        
+    20) Changed the KeyCachePolicyType element to better organize it by
+        creating a NewKeysCacheDetail and UsedKeysCacheDetail element of 
+        KeyCacheDetailType, and adding a PolicyCheckInterval to indicate 
+        the frequency interval at which an SKMS client checks for updates.
+        
+    21) The KeyCachePolicyID within the KeyCachePolicyType is no longer an integer, but 
+        a string containing a DomainID concatenated with a unique policy ID 
+        within that domain.  The string can now have a maximum length of 
+        41-bytes.
+       
+    22) Removed the maxnewdays and maxuseddays within KeyCachePolicyType and
+        replaced it with the KeyCacheDetailype elements.
+       
+    23) Removed the usefirst element from KeyCachePolicyType; it is redundant.
+    
+    24) Reorganized the KeyUsePolicyType to implement the new Permissions
+        model for defining the policy for how keys may be used.
+        
+    25) The KeyUsePolicyID within the KeyUsePolicyType is no longer an integer, but 
+        a string containing a DomainID concatenated with a unique policy ID 
+        within that domain.  The string can now have a maximum length of 
+        41-bytes.
+    -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
+            elementFormDefault="qualified" 
+            xmlns:tns="http://docs.oasis-open.org/ekmi/2008/01"
+            xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
+    <!--
+    =======================================================================
+    Schema Imports
+    =======================================================================
+    -->
+    <xsd:import schemaLocation="xenc-schema.xsd" namespace="http://www.w3.org/2001/04/xmlenc#"/>
+    
+    <!--
+    =======================================================================
+    Attributes
+    =======================================================================
+    -->
+    
+    <!--
+    =============================================
+    Any
+    =============================================
+    -->
+    <xsd:attribute name="any">
+        <xsd:annotation>
+            <xsd:documentation>
+                This attribute is used in the "Permitted.." sub-elements to 
+                define whether a key may be used at "any" value of the
+                permission or only during specified values of the permission.
+                
+                For example, a key with a "PermittedDays" permission might 
+                indicate that the specific key can be used on "any" day - by
+                the attribute "any" being set to "true" - or only on specific 
+                days - where the attribute "any" would be set to "false" and 
+                the permitted days would be listed as sub-elements to 
+                "PermittedDays".
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleType>
+            <xsd:restriction base="xsd:string">
+                <xsd:enumeration value="false"/>
+                <xsd:enumeration value="true"/>
+            </xsd:restriction>
+        </xsd:simpleType>
+    </xsd:attribute>
+    
+    <!--
+    =======================================================================
+    Groups
+    =======================================================================
+    -->
+    
+    <!--
+    =============================================
+    LocationCoordinateGroup
+    =============================================
+    -->
+    <xsd:group name="LocationCoordinateGroup">
+        <xsd:sequence>
+            <xsd:element name="Latitude">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The latitude coordinate of a location.  It is 
+                        expressed as a decimal with a fraction, where 
+                        the minutes and seconds are collapsed into a 
+                        single decimal.  An example is 37.385562.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:decimal">
+                        <xsd:totalDigits value="10"/>
+                        <xsd:fractionDigits value="7"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="Longitude">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The longitude coordinate of a location.  It is 
+                        expressed as a decimal with a fraction, where 
+                        the minutes and seconds are collapsed into a 
+                        single decimal.  An example is -121.993387.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:decimal">
+                        <xsd:totalDigits value="10"/>
+                        <xsd:fractionDigits value="7"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:group>
+    
+    <!--
+    =============================================
+    MessageDigestGroup
+    =============================================
+    -->
+    <xsd:group name="MessageDigestGroup">
+        <xsd:sequence>
+            <xsd:element name="DigestAlgorithm">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The type of message digest - SHA-1, SHA-256, SHA-512 etc.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:anyURI">
+                        <xsd:enumeration value="http://www.w3.org/2000/09/xmldsig#sha1"/>
+                        <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#sha256"/>
+                        <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#sha512"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="DigestValue">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The base64-encoded message digest of the application.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:base64Binary">
+                        <xsd:maxLength value="1024"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:group>
+    
+    
+    
+    
+    <!--
+    =======================================================================
+    Simple Types
+    =======================================================================
+    -->
+    
+    <!--
+    =============================================
+    OnePartIDType
+    =============================================
+    -->
+    <xsd:simpleType name="OnePartIDType">
+        <xsd:annotation>
+            <xsd:documentation>
+                An identifier type that consists of only a 
+                single ASCII decimal element that ranges from 
+                the value 1 to 18446744073709551615.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:maxLength value="20"/>
+            <xsd:pattern value="[1-9][0-9]{0,19}"/>
+            <xsd:whiteSpace value="collapse"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    TwoPartIDType
+    =============================================
+    -->
+    <xsd:simpleType name="TwoPartIDType">
+        <xsd:annotation>
+            <xsd:documentation>
+                An identifier type that consists of two 20-character
+                ASCII decimal numbers separated by a hyphen ("-").
+                Each 20-character decimal element ranges from the 
+                value 1 to 18446744073709551615.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:minLength value="3"/>
+            <xsd:maxLength value="41"/>
+            <xsd:pattern value="[1-9][0-9]{0,19}-[1-9][0-9]{0,19}"/>
+            <xsd:whiteSpace value="collapse"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    ThreePartIDType
+    =============================================
+    -->
+    <xsd:simpleType name="ThreePartIDType">
+        <xsd:annotation>
+            <xsd:documentation>
+                An identifier type that consists of three 20-character
+                ASCII decimal numbers separated by a hyphen ("-").
+                Each 20-character decimal element ranges from the 
+                value 1 to 18446744073709551615.  This is different
+                from the GlobalKeyIDType in that the GlobalKeyIDType permits each
+                part to contain the numeral "0", but the ThreePartIDType
+                does not; the minimum value of each part must be "1".
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:minLength value="5"/>
+            <xsd:maxLength value="62"/>
+            <xsd:pattern value="[1-9][0-9]{0,19}-[1-9][0-9]{0,19}-[1-9][0-9]{0,19}"/>
+            <xsd:whiteSpace value="collapse"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    DurationType
+    =============================================
+    -->
+    <xsd:simpleType name="DurationType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The number of seconds a symmetric key may be used for, once
+                the client application starts using the key.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:positiveInteger">
+            <xsd:minInclusive value="1"/>
+            <xsd:maxInclusive value="18446744073709551615"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    EncryptionAlgorithmType
+    =============================================
+    -->
+    <xsd:simpleType name="EncryptionAlgorithmType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The W3C XML Encryption specified algorithm that this
+                symmetric key must be used with for cryptographic
+                operations.  The reason for supporting only the XML
+                Encryption standard has to do with the extensive use
+                of the XML Encryption schema for ciphertext by the
+                current open-source implementation of this protocol.
+                It would be wiser to have newer algorithms supported
+                and specified by W3C in the XML Encrytpion standard
+                before using them, rather than making up one's own
+                algorithm URIs.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:anyURI">
+            <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#tripledes-cbc">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The Triple-DES with Cipher Block Chaining encryption algorithm
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#aes128-cbc">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The 128-bit AES with Cipher Block Chaining encryption algorithm
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#aes192-cbc">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The 192-bit AES with Cipher Block Chaining encryption algorithm
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="http://www.w3.org/2001/04/xmlenc#aes256-cbc">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The 256-bit AES with Cipher Block Chaining encryption algorithm
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    GlobalKeyIDType
+    =============================================
+    -->
+    <xsd:simpleType name="GlobalKeyIDType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The Global Key-ID (GlobalKeyID) is a string identifier of a 
+                symmetric key, consisting of five parts:
+                
+                1) a non-negative integer identifying the Domain ID (DID).  
+                The DID identifies the IANA-issued Private Enterprise Number 
+                (PEN) as issued and published at 
+                http://www.iana.org/assignments/enterprise-numbers
+                and is used within the EKMI to constrain the ownership of 
+                objects in the EKMI;
+                2) a literal hyphen ("-");                        
+                3) a non-negative integer identifying the Server ID of the 
+                server that originally generated the key;
+                4) another literal hyphen ("-");
+                5) a non-negative integer identifying the Key ID;
+                
+                Combined, the five components of this element make up a unique 
+                identifier for a symmetric key across the internet.
+                
+                A minimal GlobalKeyID element instance would look like:  
+                
+                "10514-0-0" 
+                
+                which represents a request for a new symmetric key (since 
+                there can be no ServerID or a KeyID with a value of "0" other 
+                than to specify a request for a new symmetric key).
+                
+                To accomodate the limitations on SQL databases, the maximum 
+                value of the GlobalKeyID element must be (a 62-byte ASCII 
+                decimal):
+                
+                "18446744073709551615-18446744073709551615-18446744073709551615"
+                
+                In practice, an enterprise will more than likely manage only 
+                its own domain, and within the domain have no more than a few 
+                dozen Symmetric Key Services (SKS) servers, and perhaps a few 
+                billion keys; so we would expect large GlobalKeyID's to look 
+                like the following:
+                
+                "10514-2-16777215"
+                "15966-5-1073741823"
+                "22408-13-4294967295"
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:minLength value="5"/>
+            <xsd:maxLength value="62"/>
+            <xsd:pattern value="[0-9]{1,20}-[0-9]{1,20}-[0-9]{1,20}"/>
+            <xsd:whiteSpace value="collapse"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    KeyClassType
+    =============================================
+    -->
+    <xsd:simpleType name="KeyClassType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A user-defined class for symmetric keys that can
+                be used by applications to encrypt specific classes
+                of data.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:maxLength value="255"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    KeySizeType
+    =============================================
+    -->
+    <xsd:simpleType name="KeySizeType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The size of the symmetric encryption  key.  Given the
+                currently supported algorithms, this will range from
+                128 to 256.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:unsignedShort">
+            <xsd:totalDigits value="3"/>
+            <xsd:fractionDigits value="0"/>
+            <xsd:enumeration value="128">
+                <xsd:annotation>
+                    <xsd:documentation>128-bit key</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="192">
+                <xsd:annotation>
+                    <xsd:documentation>192-bit key</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="256">
+                <xsd:annotation>
+                    <xsd:documentation>256-bit key</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    LevelClassificationType
+    =============================================
+    -->
+    <xsd:simpleType name="LevelClassificationType">
+        <xsd:annotation>
+            <xsd:documentation>
+                An enumeration of the classification levels based on the
+                Bell-LaPadula model.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Unclassified">
+                <xsd:annotation>
+                    <xsd:documentation>Data that is deemed public.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Confidential">
+                <xsd:annotation>
+                    <xsd:documentation>Data that is deemed confidential.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Secret">
+                <xsd:annotation>
+                    <xsd:documentation>Data that is deemed secret.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Top-Secret">
+                <xsd:annotation>
+                    <xsd:documentation>Data that is deemed top-secret.</xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    NumberOfTransactionsType
+    =============================================
+    -->
+    <xsd:simpleType name="NumberOfTransactionsType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The number of encryption transactions permitted with this 
+                symmetric key.  It does not limit decryption transactions.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:positiveInteger">
+            <xsd:minInclusive value="1"/>
+            <xsd:maxInclusive value="18446744073709551615"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    PermittedDayType
+    =============================================
+    -->
+    <xsd:simpleType name="PermittedDayType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The day of week a symmetric key may be used by applications.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Sunday"/>
+            <xsd:enumeration value="Monday"/>
+            <xsd:enumeration value="Tuesday"/>
+            <xsd:enumeration value="Wednesday"/>
+            <xsd:enumeration value="Thursday"/>
+            <xsd:enumeration value="Friday"/>
+            <xsd:enumeration value="Saturday"/>
+            <xsd:enumeration value="Weekday"/>
+            <xsd:enumeration value="Weekend"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    RequestCheckIntervalType
+    =============================================
+    -->
+    <xsd:simpleType name="RequestCheckIntervalType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The number of seconds a client must wait before it can query
+                the SKS server on the status of a work-in-progress request
+                for a symmetric key.  The minimum is 1-minute, while the
+                maximum is 1-week.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:positiveInteger">
+            <xsd:minInclusive value="60"/>
+            <xsd:maxInclusive value="604800"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    StatusType
+    =============================================
+    -->
+    <xsd:simpleType name="StatusType">
+        <xsd:annotation>
+            <xsd:documentation>
+                An indicator if the policy containing this element type
+                is currently "Active", "Default", "Inactive" or "Other".
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:enumeration value="Active">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        An active policy.  If this element is in the
+                        KeyCachePolicy object, it indicates that symmetric 
+                        keys may be cached with this KCP.  If it is in the
+                        KeyUsePolicy object, it indicates that the symmetric
+                        key may be used for encryption.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Default">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The default policy in the absence of a named KCP or 
+                        KUP.  It is automatically active, unless over-ridden.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Inactive">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A policy that, in the case of the KCP, must not be 
+                        used for caching any symmetric keys or in the case
+                        of a KUP for encryption.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+            <xsd:enumeration value="Other">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A policy that has an implementation-specific action.  
+                        Recommended only for test-use.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:enumeration>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    SymkeyRequestIDType
+    =============================================
+    -->
+    <xsd:simpleType name="SymkeyRequestIDType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The symmetric key request identifer (SymeyRequestID) is a string 
+                identifier of a request for a symmetric key, consist of five 
+                parts:
+                
+                1) a non-negative integer identifying the Domain ID (DID).  
+                The DID identifies the IANA-issued Private Enterprise Number 
+                (PEN) as issued and published at 
+                http://www.iana.org/assignments/enterprise-numbers
+                and is used within the EKMI to constrain the ownership of 
+                objects in the EKMI;
+                2) a literal hyphen ("-");                        
+                3) a non-negative integer identifying the Server ID of the 
+                server that originally generated the key;
+                4) another literal hyphen ("-");
+                5) a non-negative integer identifying the Request ID;
+                
+                Combined, the five components of this element make up a unique 
+                identifier for a request for a symmetric key across the internet.
+                All SymkeyRequestID's have real numbers in them and the number
+                zero (0) should not appear in any part of this element.
+                
+                To accomodate the limitations on SQL databases, the maximum 
+                value of the SymkeyRequestID element must be (a 62-byte ASCII 
+                decimal):
+                
+                "18446744073709551615-18446744073709551615-18446744073709551615"
+                
+                In practice, an enterprise will more than likely manage only 
+                its own domain, and within the domain have no more than a few 
+                dozen Symmetric Key Services (SKS) servers.  Each server, 
+                however, can field only 18446744073709551615 requests.  Before
+                a company reaches that point, it will need to establish new
+                SKS servers to accomodate new requests.  SymkeyRequestID's may
+                look like the following:
+                
+                "10514-2-16777215"
+                "15966-5-1073741823"
+                "22408-13-4294967295"
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:string">
+            <xsd:minLength value="5"/>
+            <xsd:maxLength value="62"/>
+            <xsd:pattern value="[0-9]{1,20}-[0-9]{1,20}-[0-9]{1,20}"/>
+            <xsd:whiteSpace value="collapse"/>
+        </xsd:restriction>
+    </xsd:simpleType>
+    
+    <!--
+    =============================================
+    X509CertificateType
+    =============================================
+    -->
+    <xsd:simpleType name="X509CertificateType">
+        <xsd:annotation>
+            <xsd:documentation>
+                The X509-compliant digital certificate sent by SKMS clients
+                and used by SKS servers to encrypt the symmetric-key payload
+                when responding to the client.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:restriction base="xsd:base64Binary"/>
+    </xsd:simpleType>
+    
+    <!--
+    =======================================================================
+    Complex Types
+    =======================================================================
+    -->
+    
+    <!--
+    =============================================
+    ApplicationsType
+    =============================================
+    -->
+    <xsd:complexType name="ApplicationsType">
+        <xsd:sequence>
+            <xsd:element name="ApplicationID" type="tns:TwoPartIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The unique identifier of the application.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="ApplicationName">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name of the application.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="256"/>
+                        <xsd:whiteSpace value="preserve"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="Version" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The version number of the application.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="32"/>
+                        <xsd:whiteSpace value="preserve"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:group ref="tns:MessageDigestGroup" minOccurs="0"/>
+            <xsd:element name="Other" type="xsd:anyType" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    KeyCacheDetailType
+    =============================================
+    -->
+    <xsd:complexType name="KeyCacheDetailType">
+        <xsd:sequence>
+            <xsd:element name="MaximumKeys" minOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The maximum number of keys permitted to be cached
+                        on the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:integer">
+                        <xsd:minInclusive value="0"/>
+                        <xsd:maxInclusive value="18446744073709551615"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="MaximumDuration" minOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The maximum number of seconds keys are permitted to
+                        be cached on the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:integer">
+                        <xsd:minInclusive value="0"/>
+                        <xsd:maxInclusive value="18446744073709551615"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    KeyCachePolicyType
+    =============================================
+    -->
+    <xsd:complexType name="KeyCachePolicyType" mixed="true">
+        <xsd:annotation>
+            <xsd:documentation>
+                The KeyCachePolicyType document is returned as part of
+                the response to a request for a key-caching policy from a
+                Symmetric Key Services (SKS) server.  The KCP tells the
+                SKMS client if it may cache symmetric keys, and if so, how 
+                many new and used keys it may cache, for how long, etc.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="KeyCachePolicyID" type="tns:TwoPartIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The unique Policy ID of the KeyCachePolicy is a 
+                        concatenation of the DomainID and the unique 
+                        key-caching policy ID within that domain.  It is 
+                        a 41-byte ASCII decimal value.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="PolicyName">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name of the KeyCachePolicy, as defined by the
+                        enterprise running this Symmetric Key Management
+                        System (SKMS).
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="255"/>
+                        <xsd:whiteSpace value="preserve"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="Description" nillable="true">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A detailed description of the KeyCachePolicy, for
+                        human readers, as defined by the enterprise running 
+                        this Symmetric Key Management System (SKMS).
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="2048"/>
+                        <xsd:whiteSpace value="preserve"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="KeyClass" type="tns:KeyClassType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The class of keys to which this KeyCachePolicy applies.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="StartDate" type="xsd:dateTime">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The date and time on which this KeyCachePolicy becomes 
+                        effective.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="EndDate" type="xsd:dateTime" nillable="true">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The date and time when this KeyCachePolicy becomes 
+                        obsolete.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="PolicyCheckInterval">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The number of seconds that must elapse before which
+                        the client sends a KeyCachePolicy Request message to
+                        the SKS server for an update on the policy.  This is
+                        to ensure that clients are always updated on any KCP
+                        changes at the server.  Maximum value is 30 days.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:nonNegativeInteger">
+                        <xsd:minInclusive value="0"/>
+                        <xsd:maxInclusive value="2592000"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="Status" type="tns:StatusType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        An indicator if the KeyCachePolicy is currently "Active",
+                        "Default", "Inactive" or "Other".
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="NewKeysCacheDetail" type="tns:KeyCacheDetailType" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Details about the maximum number of new (unused for 
+                        any encryption transaction by the client) symmetric 
+                        keys that may be cached by the client and for how long.
+                        If the element is missing from a KCP response, it means
+                        that new symmetric keys may NOT be cached on the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="UsedKeysCacheDetail" type="tns:KeyCacheDetailType" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        Details about the maximum number of used (used for 
+                        any encryption transaction by the client) symmetric 
+                        keys that may be cached by the client and for how long.
+                        If the element is missing from a KCP response, it means
+                        that used symmetric keys may NOT be cached on the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    KeyClassesType
+    =============================================
+    -->
+    <xsd:complexType name="KeyClassesType">
+        <xsd:sequence>
+            <xsd:element name="KeyClass" type="tns:KeyClassType" minOccurs="1" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of KeyClass elements that will be used in
+                        requests to ask for multiple symmetric keys, each
+                        corresponding to a KeyClass type in this list.
+                        This is useful in applications that need to encrypt
+                        a single data document for multiple targets, each 
+                        with their own access policies and restrictions.
+                        If KeyClasses is used in a request, there must be
+                        least one KeyClass child within it.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    KeyUsePolicyType
+    =============================================
+    -->
+    <xsd:complexType name="KeyUsePolicyType" mixed="true">
+        <xsd:annotation>
+            <xsd:documentation>
+                The KeyUsePolicyType document is returned as part of the 
+                response to a request for a symmetric key from a Symmetric 
+                Key Services (SKS) server.  The KUP tells the client how 
+                it must use the associated symmetric key.  At least one
+                permission-type will provide the policy definition.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="KeyUsePolicyID" type="tns:TwoPartIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The unique Policy ID of the KeyUsePolicy is a 
+                        concatenation of the DomainID and the unique 
+                        key-use policy ID within that domain.  It is 
+                        a 41-byte ASCII decimal value.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="PolicyName">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The name of the KeyUsePolicy, as defined by the
+                        enterprise running this Symmetric Key Management
+                        System (SKMS).
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="255"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="KeyClass" type="tns:KeyClassType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A user-defined class for keys generated with this 
+                        KeyUsePolicy.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="KeyAlgorithm" type="tns:EncryptionAlgorithmType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The type of algorithm used by this symmetric key policy.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="KeySize" type="tns:KeySizeType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The size of the symmetric encryption  key.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="Status" type="tns:StatusType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        An indicator if the KeyUsePolicy is currently "Active",
+                        "Default", "Inactive" or "Other".
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="Permissions" type="tns:PermissionsType" minOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The permissions that define the policy for how this
+                        symmetric key may be used.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedApplicationsType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedApplicationsType">
+        <xsd:sequence>
+            <xsd:element name="PermittedApplication" type="tns:ApplicationsType" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of applications that are permitted to use 
+                        this key.  The interpretation of the application 
+                        element is user application-defined.  It may consist 
+                        of a name, version number, a message digest, etc.
+                        
+                        When the "any" attribute is set to "true", no
+                        PermittedApplication elements must appear in this
+                        element.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedDatesType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedDatesType">
+        <xsd:sequence>
+            <xsd:element name="PermittedDate" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of the dates when this key may be used.  If it 
+                        exists, the key must be used only between the given
+                        sets of StartDate-EndDate with the start and end dates
+                        inclusive.  Must use the following format: YYYY-MM-DD.
+                        
+                        When the "any" attribute is set to "true", no
+                        PermittedDate elements must appear in this element.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="StartDate">
+                            <xsd:simpleType>
+                                <xsd:restriction base="xsd:date">
+                                    <xsd:pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+                                </xsd:restriction>
+                            </xsd:simpleType>
+                        </xsd:element>
+                        <xsd:element name="EndDate">
+                            <xsd:simpleType>
+                                <xsd:restriction base="xsd:date">
+                                    <xsd:pattern value="\p{Nd}{4}-\p{Nd}{2}-\p{Nd}{2}"/>
+                                </xsd:restriction>
+                            </xsd:simpleType>
+                        </xsd:element>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedDaysType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedDaysType">
+        <xsd:sequence>
+            <xsd:element name="PermittedDay" type="tns:PermittedDayType" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of days of the week that the symmetric key 
+                        may be used.  Its meaning is application-specific.
+                        
+                        When the "any" attribute is set to "true", no
+                        PermittedDay elements must appear in this element.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedDurationType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedDurationType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A complex-type to wrap the DurationType with the "any"
+                attribute.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:extension base="tns:DurationType">
+                <xsd:attribute ref="tns:any" use="required"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedLevelsType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedLevelsType">
+        <xsd:sequence>
+            <xsd:element name="PermittedLevel" type="tns:LevelClassificationType" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of classification levels within which an 
+                        application is permitted to use the key.  Its 
+                        interpretation is application-specific.
+                        
+                        When the "any" attribute is set to "true", no
+                        PermittedLevel elements must appear in this element.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="Other" type="xsd:anyType" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedLocationsType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedLocationsType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A list of physical locations of the client, where the key 
+                may be used.  This is specific to the application and may 
+                consist of GPS coordinates, Building numbers, secure rooms, 
+                cities, etc.  Its meaning is application-defined.
+                
+                When the "any" attribute is set to "true", no PermittedLocation
+                elements must appear in this element.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="PermittedLocation" minOccurs="0" maxOccurs="unbounded">
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="LocationName">
+                            <xsd:simpleType>
+                                <xsd:restriction base="xsd:string">
+                                    <xsd:maxLength value="256"/>
+                                    <xsd:whiteSpace value="preserve"/>
+                                </xsd:restriction>
+                            </xsd:simpleType>
+                        </xsd:element>
+                        <xsd:group ref="tns:LocationCoordinateGroup" minOccurs="0" maxOccurs="unbounded"/>
+                        <xsd:element name="Other" type="xsd:anyType" minOccurs="0"/>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedNumberOfTransactionsType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedNumberOfTransactionsType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A complex-type to wrap the NumberOfTransactionsType with 
+                the "any" attribute.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:simpleContent>
+            <xsd:extension base="tns:NumberOfTransactionsType">
+                <xsd:attribute ref="tns:any" use="required"/>
+            </xsd:extension>
+        </xsd:simpleContent>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedTimesType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedTimesType">
+        <xsd:sequence>
+            <xsd:element name="PermittedTime" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of the times of day when this key may be used.  
+                        If it exists, the key must be used only between the 
+                        start_time and end_time, with the start and end times 
+                        inclusive.  Must use 24-hour clock in the following 
+                        format: HH:MM:SS.
+                        
+                        When the "any" attribute is set to "true", no 
+                        PermittedTime elements must appear in this element.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:complexType>
+                    <xsd:sequence>
+                        <xsd:element name="StartTime">
+                            <xsd:simpleType>
+                                <xsd:restriction base="xsd:time">
+                                    <xsd:pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+                                </xsd:restriction>
+                            </xsd:simpleType>
+                        </xsd:element>
+                        <xsd:element name="EndTime">
+                            <xsd:simpleType>
+                                <xsd:restriction base="xsd:time">
+                                    <xsd:pattern value="\p{Nd}{2}:\p{Nd}{2}:\p{Nd}{2}"/>
+                                </xsd:restriction>
+                            </xsd:simpleType>
+                        </xsd:element>
+                    </xsd:sequence>
+                </xsd:complexType>
+            </xsd:element>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermittedUsesType
+    =============================================
+    -->
+    <xsd:complexType name="PermittedUsesType" mixed="true">
+        <xsd:sequence>
+            <xsd:element name="PermittedUse" minOccurs="0" maxOccurs="unbounded">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A list of uses that describes how the symmetric key 
+                        may be used.  Its meaning is application-specific.
+                        
+                        When the "any" attribute is set to "true", no 
+                        PermittedUse elements must appear in this element.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="256"/>
+                        <xsd:whiteSpace value="preserve"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="Other" type="xsd:anyType" minOccurs="0"/>
+        </xsd:sequence>
+        <xsd:attribute ref="tns:any" use="required"/>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    PermissionsType
+    =============================================
+    -->
+    <xsd:complexType name="PermissionsType">
+        <xsd:annotation>
+            <xsd:documentation>
+                This is a required element that allows companies to define 
+                how the symmetric key may be used.  It will be included in 
+                the KUP object returned with the symmetric key.  Applications 
+                must parse through the permissions before using the key and 
+                only allow what is permitted for that permission type.  
+                
+                All "Permitted..." sub-elements - except for the Other element - 
+                are required.  However, if the attribute "any" for each of the 
+                "Permitted..." sub-elements is set to "true", then the xsi:nil 
+                attribute must also be set to "true" and the sub-element must 
+                be empty.  If the value of the "any" attribute for a specific
+                "Permitted..." sub-element is "false", then at least one child 
+                element must exist for the "Permitted..." sub-element and the
+                xsi:nil attribute must not exist.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="PermittedApplications" type="tns:PermittedApplicationsType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedDates" type="tns:PermittedDatesType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedDays" type="tns:PermittedDaysType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedDuration" type="tns:PermittedDurationType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedLevels" type="tns:PermittedLevelsType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedLocations" type="tns:PermittedLocationsType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedNumberOfTransactions" type="tns:PermittedNumberOfTransactionsType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedTimes" type="tns:PermittedTimesType" minOccurs="1" nillable="true"/>
+            <xsd:element name="PermittedUses" type="tns:PermittedUsesType" minOccurs="1" nillable="true"/>
+            <xsd:element name="Other" type="xsd:anyType" minOccurs="0"/>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    SymkeyType
+    =============================================
+    -->
+    <xsd:complexType name="SymkeyType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A symmetric key object, which is the succesfully response
+                of a request for a key from an SKMS client to an SKS server.
+                While the
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="SymkeyRequestID" type="tns:SymkeyRequestIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The request identifier of the symmetric key request that
+                        resulted in this object.  When a client requests a
+                        symmetric-key asynchronously, the server returns a
+                        SymkeyRequestID in its initial response.  When the server
+                        has completed its processing, it returns the symmetric
+                        key asynchronously to the client.  The SymkeyRequestID
+                        is the value that allows the client to associate a key
+                         with a pending request.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="GlobalKeyID" type="tns:GlobalKeyIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The global key-identifier of the symmetric key in
+                        this object.  This will always be non-zero (10514-0-0) 
+                        in a successful response from an SKS server.  Note
+                        that in DRAFT 01 of SKSML, the GlobalKeyID was specified
+                        in a KeyName element.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="KeyUsePolicy" type="tns:KeyUsePolicyType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        This element defines a policy for how clients may use
+                        symmetric keys on the client device.  Note that this
+                        element used to be in the EncryptionProperties element 
+                        in DRAFT 01.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="EncryptionMethod" type="xenc:EncryptionMethodType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The type of encryption used to protect the symmetric
+                        key in this payload.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element ref="xenc:CipherData">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The encrypted symmetric key.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    SymkeyErrorType
+    =============================================
+    -->
+    <xsd:complexType name="SymkeyErrorType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A response with an error message in the event that a request
+                was not successful.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="SymkeyRequestID" type="tns:SymkeyRequestIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The request identifier of the symmetric key request.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="RequestedGlobalKeyID" type="tns:GlobalKeyIDType">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The global key-identifier of the symmetric key that
+                        was requested by the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="RequestedKeyClass" type="tns:KeyClassType" minOccurs="0">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The requested key-class for a new symmetric key, if any.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="ErrorCode">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        An application-specific error code.
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="255"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+            <xsd:element name="ErrorMessage">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        An application-specific error message that provides
+                        detail on the error
+                    </xsd:documentation>
+                </xsd:annotation>
+                <xsd:simpleType>
+                    <xsd:restriction base="xsd:string">
+                        <xsd:maxLength value="1024"/>
+                    </xsd:restriction>
+                </xsd:simpleType>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+    <!--
+    =============================================
+    SymkeyWorkInProgressType
+    =============================================
+    -->
+    <xsd:complexType name="SymkeyWorkInProgressType">
+        <xsd:annotation>
+            <xsd:documentation>
+                A response to an asynchronous request for a symmetric key,
+                indicating that the request is being worked on by the SKS
+                server.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+            <xsd:element name="RequestedGlobalKeyID" type="tns:GlobalKeyIDType" minOccurs="1" maxOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The global key-identifier of the symmetric key that
+                        was requested by the client.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="RequestedKeyClass" type="tns:KeyClassType" minOccurs="0" maxOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        The requested key-class for a new symmetric key, if any.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="SymkeyRequestID" type="tns:SymkeyRequestIDType" minOccurs="1" maxOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A unique request identifier that allows the client to
+                        either poll the SKS server for status on the request, 
+                        or correlate a specific request with an asynchronous
+                        response received from the server (this is necessary,
+                        because the client may have sent many asynchronous
+                        requests and may be receiving responses out of order).
+                        The SymkeyRequestID should not be confused with the
+                        GlobalKeyID despite their identical look.  While the
+                        first two parts of the GlobalKeyID and SymkeyRequestID
+                        reference the same identifier (DomainID and ServerID),
+                        the last part of the GlobalKeyID refers to a unique
+                        KeyID on an SKS server, while the last part of the
+                        SymkeyRequestID refers to a unique request identifer.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+            <xsd:element name="RequestCheckInterval" type="tns:RequestCheckIntervalType" minOccurs="1" maxOccurs="1">
+                <xsd:annotation>
+                    <xsd:documentation>
+                        A value, in seconds, that tells the client how frequently
+                        the client may query the SKS server for updates on the
+                        symmetric-key request.
+                    </xsd:documentation>
+                </xsd:annotation>
+            </xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+</xsd:schema>

Added: xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpRequest.xsd
===================================================================
--- xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpRequest.xsd	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpRequest.xsd	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    Document   : kcpRequest.xsd
+    Created on : December 24, 2007, 4:46 PM
+    Author     : anoor
+    Description: Document is the XML Schema Definition (XSD) for the
+                 SOAP-Body contents of a request for a KeyCachePolicy.
+                 The SOAP message itself is secured with a Web Services 
+                 Security (WSS) Header containing a digital signature
+                 which provides the service provider with all the 
+                 information it needs to know how to respond.
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
+            xmlns:ekmi="http://docs.oasis-open.org/ekmi/2008/01"
+            elementFormDefault="qualified">
+    <xsd:include schemaLocation="EKMICoreLibrary.xsd"/>
+    
+    <!--
+        =============================================
+        KeyCachePolicyRequest
+        =============================================
+     -->
+     
+    <xsd:element name="KeyCachePolicyRequest">
+        <xsd:annotation>
+            <xsd:documentation>
+                A KeyCachePolicy request does not need to specify any
+                data within its root-element.  The service responding
+                to such a request has all that it needs from the SOAP
+                Header of the request: the XMLSignature element that
+                carries the identity (DN) of the requester, the 
+                digital signature to verify the authenticity of the
+                request and the timestamp of the request.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:annotation>
+                <xsd:documentation>
+                    No elements/attributes are defined for KeyCachePolicyRequest.
+                </xsd:documentation>
+            </xsd:annotation>
+        </xsd:complexType>
+    </xsd:element>
+    
+</xsd:schema>

Added: xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpResponse.xsd
===================================================================
--- xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpResponse.xsd	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/resources/schema/ekmi/kcpResponse.xsd	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    Document   : kcpResponse.xsd
+    Created on : June 17, 2008, 11:16 AM
+    Author     : Arshad Noor
+    Description: Document is the XML Schema Definition (XSD) for the
+                 SOAP-Body contents of a response for a KeyCachePolicy.
+                 The SOAP message itself is secured with a Web Services 
+                 Security (WSS) Header containing a digital signature
+                 which provides the service provider with all the 
+                 information it needs to know how to respond.
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
+            xmlns:ekmi="http://docs.oasis-open.org/ekmi/2008/01"
+            elementFormDefault="qualified"
+            xml:lang="en-US">
+    <xsd:include schemaLocation="EKMICoreLibrary.xsd"/>
+    
+    <!--
+        =============================================
+        KeyCachePolicyResponse
+        =============================================
+     -->
+    <xsd:element name="KeyCachePolicyResponse">
+        <xsd:annotation>
+            <xsd:documentation>
+                This element is a response from the SKS server for key-cache
+                policies describing how clients may cache symmetric keys on 
+                the client device.  The response may consist of multiple KCP
+                elements, each one applying to a class of symmetric keys.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:sequence>
+                <xsd:element name="KeyCachePolicy" type="ekmi:KeyCachePolicyType" minOccurs="1" maxOccurs="unbounded">
+                    <xsd:annotation>
+                        <xsd:documentation>
+                            This element defines a single policy defining how EKMI
+                            clients may cache symmetric keys of a specific key-class 
+                            on the client device.
+                        </xsd:documentation>
+                    </xsd:annotation>
+                </xsd:element>
+            </xsd:sequence>
+        </xsd:complexType>
+    </xsd:element>
+</xsd:schema>

Added: xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyRequest.xsd
===================================================================
--- xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyRequest.xsd	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyRequest.xsd	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    Document   : symkeyRequest.xsd
+    Author     : Arshad Noor
+    Description: Document is the XML Schema Definition (XSD) for the
+                 SOAP-Body contents of a request for a SymkeyRequest.
+                 The SOAP message itself is secured with a Web Services 
+                 Security (WSS) Header containing a digital signature
+                 which provides the service provider with the information 
+                 it needs about the requestor.  The Global Key ID (GlobalKeyID)
+                 tells the service provider the symmetric key the client
+                 needs.  The optional KeyClasses allows the requestor to
+                 request multiple symmetric keys of different KeyClass
+                 values for applications.
+                 
+    Modified on : November 18, 2008, 10:17 AM             
+    Changes in DRAFT 8.0  (current version)
+    
+    01) Created the X509EncryptionCertificate to support sending the encryption 
+        certificate to the SKS server when requesting a symmetric-key.  This
+        allows the SKMS to be encrypt the response to the client without
+        having to have the requester's encryption certificate in the SKMS DB.
+
+    Modified on : October 16, 2008, 4:46 PM
+    Changes in version 7.0
+    
+    01) Added the choice of sending either a GlobalKeyID or a SymkeyRequestID
+        in the SymkeyRequest to accommodate asynchronous request/responses
+        to/from SKS servers.
+        
+    Changes since 1.0:
+     
+    01) Added the optional KeyClasses element to specify one or more
+        KeyClass elements within it.  If KeyClasses is not specified
+        in the request, the SKS server will return a symmetric key 
+        of some default KeyClass.  
+                 
+        
+    Created on : December 24, 2007, 4:46 PM
+    Author     : Arshad Noor
+    Verstion   : 1.0
+-->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
+            xmlns:ekmi="http://docs.oasis-open.org/ekmi/2008/01"
+            elementFormDefault="qualified">
+    <xsd:include schemaLocation="EKMICoreLibrary.xsd"/>
+    
+    <!--
+        =============================================
+        SymkeyRequest
+        =============================================
+     -->
+    <xsd:element name="SymkeyRequest">
+        <xsd:annotation>
+            <xsd:documentation>
+                This element requests a new, or an existing, symmetric 
+                encryption key from an SKS server.  It contains a GlobalKeyID
+                child element, which is the global key identifier (GlobalKeyID) 
+                of the requested key and an optional KeyClasses element
+                containing a list of KeyClass elements.  The number of
+                KeyClass elements indicates the number of symmetric keys
+                being requested by the client.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:choice>
+                <xsd:sequence>
+                    <xsd:element name="GlobalKeyID" type="ekmi:GlobalKeyIDType" minOccurs="1" maxOccurs="unbounded">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                            The global key-identifier being requested.  A 
+                            GlobalKeyID of 10514-0-0 is a request for a new 
+                            symmetric key; all other values indicate an 
+                            existing symmetric key.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="KeyClasses" type="ekmi:KeyClassesType" minOccurs="0" maxOccurs="1">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                            An optional qualifier that indicates the types of 
+                            symmetric keys being requested by the client 
+                            application.  KeyClasses are application-defined 
+                            and site-specific.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                    <xsd:element name="X509EncryptionCertificate" type="ekmi:X509CertificateType" minOccurs="0" maxOccurs="1">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                            An optional X509-compliant digital certificate sent 
+                            by SKMS clients and used by SKS servers to encrypt 
+                            the symmetric-key payload when responding to the 
+                            client.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                </xsd:sequence>
+                <xsd:sequence>
+                    <xsd:element name="SymkeyRequestID" type="ekmi:SymkeyRequestIDType" minOccurs="1" maxOccurs="unbounded">
+                        <xsd:annotation>
+                            <xsd:documentation>
+                            This element indicates that the client is checking
+                            on the status of a previous request from which it
+                            received a SymkeyRequestID from the SKS server.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:element>
+                </xsd:sequence>
+            </xsd:choice>
+        </xsd:complexType>
+    </xsd:element>
+</xsd:schema>

Added: xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyResponse.xsd
===================================================================
--- xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyResponse.xsd	                        (rev 0)
+++ xmlkey/trunk/skms/src/main/resources/schema/ekmi/symkeyResponse.xsd	2009-01-19 04:12:50 UTC (rev 230)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+    Document    : symkeyResponse.xsd
+    Version     : 7.0
+    Modified on : October 16, 2008, 4:46 PM
+    Author      : Arshad Noor
+    Description : Document is the XML Schema Definition (XSD) for the
+                  SOAP-Body contents of a response for a SymkeyRequest.
+                  The SOAP message itself is secured with a Web Services 
+                  Security (WSS) Header containing a digital signature.
+    
+    Modified on : October 16, 2008, 4:46 PM
+    Changes in version 7.0
+    
+    01) Added the SymkeyWorkInProgressType as an additional choice to the
+        SymkeyResponse element, to accommodate asynchronous request/responses
+        to/from SKS servers.
+    
+    Modified on : June 23, 2008, 4:46 PM
+    Changes in version 6.0
+    
+    01) Moved the SymkeyType and SymkeyErrorType to the EKMICoreLibrary.xsd.
+    
+    02) Modifed SymkeyResponseType so it now can contain either Symkey,
+        SymkeyError or Symkey-with-SymkeyError elements.
+    
+    Modified on : June 03, 2008, 8:46 PM
+    Changes in version 5.0
+    
+    01) Removed EncryptionProperties element from SymkeyType.  The primary
+        use of EncryptionProperties would have been to send along an IV
+        for software decrypting ciphertext.  However, since all symmetric
+        keys are less than 256 bits (32 bytes), which fit well within the 
+        size limit even for a 1024-bit RSA key (approximately 117 bytes 
+        when used with PKCS 1 padding), it doesn't really make sense to
+        carry this element in the schema when there is 3x times headroom
+        in the RSA algorithm for larger symmetric key sizes.
+        
+    
+    Created on : December 24, 2007, 4:46 PM
+    Author     : anoor
+-->
+
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
+            xmlns:ekmi="http://docs.oasis-open.org/ekmi/2008/01"
+            elementFormDefault="qualified">
+    
+    <xsd:include schemaLocation="EKMICoreLibrary.xsd"/>
+   
+    <!--
+    =============================================
+    SymkeyResponse
+    =============================================
+    -->
+     <xsd:element name="SymkeyResponse">
+         <xsd:annotation>
+            <xsd:documentation>
+                The element returned by the SKS server, in response to a 
+                request for a symmetric encryption key from a client.  The
+                response contains one or more embedded elements that may be
+                either of the SymkeyType, SymkeyErrorType (if there was a
+                problem with the request) or SymkeyWorkInProgessType (if the
+                request was sent asynchronously).  The response is embedded 
+                in a SOAP WSS header with a digital signature for verifying 
+                the authenticity and integrity of the response.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:choice>
+                <xsd:sequence>
+                    <xsd:element ref="ekmi:Symkey" minOccurs="1" maxOccurs="unbounded"/>
+                    <xsd:element ref="ekmi:SymkeyWorkInProgress" minOccurs="0" maxOccurs="unbounded"/>
+                    <xsd:element ref="ekmi:SymkeyError" minOccurs="0" maxOccurs="unbounded"/>    
+                </xsd:sequence>
+                <xsd:sequence>
+                    <xsd:element ref="ekmi:SymkeyWorkInProgress" minOccurs="1" maxOccurs="unbounded"/>
+                    <xsd:element ref="ekmi:SymkeyError" minOccurs="0" maxOccurs="unbounded"/>
+                </xsd:sequence>
+                <xsd:sequence>
+                    <xsd:element ref="ekmi:SymkeyError" minOccurs="1" maxOccurs="unbounded"/>    
+                </xsd:sequence>
+            </xsd:choice>
+        </xsd:complexType>
+    </xsd:element>
+    
+    <!--
+    =======================================================================
+    Symkey, SymkeyError and SymkeyWorkInProgress elements
+    =======================================================================
+    -->
+    <xsd:element name="Symkey" type="ekmi:SymkeyType"></xsd:element>
+    <xsd:element name="SymkeyError" type="ekmi:SymkeyErrorType"></xsd:element>
+    <xsd:element name="SymkeyWorkInProgress" type="ekmi:SymkeyWorkInProgressType"></xsd:element>
+    
+</xsd:schema>




More information about the jboss-identity-commits mailing list