You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2018/01/04 11:27:45 UTC

[1/3] incubator-taverna-server git commit: Implicit classes for JAXB beans for Usage Records

Repository: incubator-taverna-server
Updated Branches:
  refs/heads/master 0e4869749 -> 7f145e245


http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/RecordIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/RecordIdentity.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/RecordIdentity.java
new file mode 100644
index 0000000..d07c5a9
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/RecordIdentity.java
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+import org.apache.taverna.server.usagerecord.xml.dsig.KeyInfoType;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>RecordIdentity</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=22">GFD.98 section 11.1</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "keyInfo"
+})
+@XmlRootElement(name = "RecordIdentity")
+public class RecordIdentity {
+
+    @XmlElement(name = "KeyInfo", namespace = "http://www.w3.org/2000/09/xmldsig#")
+    protected KeyInfoType keyInfo;
+    @XmlAttribute(name = "recordId", namespace = "http://schema.ogf.org/urf/2003/09/urf", required = true)
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String recordId;
+    @XmlAttribute(name = "createTime", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar createTime;
+
+    /**
+     * Gets the value of the keyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public KeyInfoType getKeyInfo() {
+        return keyInfo;
+    }
+
+    /**
+     * Sets the value of the keyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public void setKeyInfo(KeyInfoType value) {
+        this.keyInfo = value;
+    }
+
+    /**
+     * Gets the value of the recordId property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getRecordId() {
+        return recordId;
+    }
+
+    /**
+     * Sets the value of the recordId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setRecordId(String value) {
+        this.recordId = value;
+    }
+
+    /**
+     * Gets the value of the createTime property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getCreateTime() {
+        return createTime;
+    }
+
+    /**
+     * Sets the value of the createTime property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setCreateTime(XMLGregorianCalendar value) {
+        this.createTime = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ResourceType.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ResourceType.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ResourceType.java
new file mode 100644
index 0000000..a2b916d
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ResourceType.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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;
+
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>ResourceType</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page-37">GFD.98 section 13.1.1</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ResourceType", propOrder = {
+    "value"
+})
+public class ResourceType {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ServiceLevel.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ServiceLevel.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ServiceLevel.java
new file mode 100644
index 0000000..d005cd3
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ServiceLevel.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>ServiceLevel</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=36">GFD.98 section 12.9</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "ServiceLevel")
+public class ServiceLevel {
+
+    @XmlValue
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String value;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/StartTime.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/StartTime.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/StartTime.java
new file mode 100644
index 0000000..22ccc16
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/StartTime.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>StartTime</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=29">GFD.98 section 11.10</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "StartTime")
+public class StartTime {
+
+    @XmlValue
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setValue(XMLGregorianCalendar value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Status.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Status.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Status.java
new file mode 100644
index 0000000..2811d36
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Status.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Status</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=28">GFD.98 section 11.5</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Status")
+public class Status {
+
+    @XmlValue
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/SubmitHost.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/SubmitHost.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/SubmitHost.java
new file mode 100644
index 0000000..0e1242e
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/SubmitHost.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>SubmitHost</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=30">GFD.98 section 11.13</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "SubmitHost")
+public class SubmitHost {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Swap.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Swap.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Swap.java
new file mode 100644
index 0000000..be4482c
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Swap.java
@@ -0,0 +1,211 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Swap</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=33">GFD.98 section 12.4</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Swap")
+public class Swap {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+    @XmlAttribute(name = "storageUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String storageUnit;
+    @XmlAttribute(name = "phaseUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Duration phaseUnit;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        if (metric == null) {
+            return "total";
+        } else {
+            return metric;
+        }
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+    /**
+     * Gets the value of the storageUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStorageUnit() {
+        return storageUnit;
+    }
+
+    /**
+     * Sets the value of the storageUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStorageUnit(String value) {
+        this.storageUnit = value;
+    }
+
+    /**
+     * Gets the value of the phaseUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getPhaseUnit() {
+        return phaseUnit;
+    }
+
+    /**
+     * Sets the value of the phaseUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setPhaseUnit(Duration value) {
+        this.phaseUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeDuration.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeDuration.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeDuration.java
new file mode 100644
index 0000000..ae14ed8
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeDuration.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>TimeDuration</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=35">GFD.98 section 12.7</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "TimeDuration")
+public class TimeDuration {
+
+    @XmlValue
+    protected Duration value;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setValue(Duration value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeInstant.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeInstant.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeInstant.java
new file mode 100644
index 0000000..0006fcc
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/TimeInstant.java
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>TimeInstant</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=35">GFD.98 section 12.8</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "TimeInstant")
+public class TimeInstant {
+
+    @XmlValue
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar value;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setValue(XMLGregorianCalendar value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecordType.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecordType.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecordType.java
new file mode 100644
index 0000000..ac254d2
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecordType.java
@@ -0,0 +1,318 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlElements;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>UsageRecordType</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=21">GFD.98 section 10.1</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "UsageRecordType", propOrder = {
+    "recordIdentity",
+    "jobIdentity",
+    "userIdentity",
+    "jobName",
+    "charge",
+    "status",
+    "diskOrMemoryOrSwap",
+    "wallDurationOrCpuDurationOrNodeCount"
+})
+@XmlSeeAlso({
+    JobUsageRecord.class
+})
+public class UsageRecordType {
+
+    @XmlElement(name = "RecordIdentity", required = true)
+    protected RecordIdentity recordIdentity;
+    @XmlElement(name = "JobIdentity")
+    protected JobIdentity jobIdentity;
+    @XmlElement(name = "UserIdentity")
+    protected List<UserIdentity> userIdentity;
+    @XmlElement(name = "JobName")
+    protected JobName jobName;
+    @XmlElement(name = "Charge")
+    protected Charge charge;
+    @XmlElement(name = "Status", required = true)
+    protected Status status;
+    @XmlElements({
+        @XmlElement(name = "Disk", type = Disk.class),
+        @XmlElement(name = "Memory", type = Memory.class),
+        @XmlElement(name = "Swap", type = Swap.class),
+        @XmlElement(name = "Network", type = Network.class),
+        @XmlElement(name = "TimeDuration", type = TimeDuration.class),
+        @XmlElement(name = "TimeInstant", type = TimeInstant.class),
+        @XmlElement(name = "ServiceLevel", type = ServiceLevel.class)
+    })
+    protected List<Object> diskOrMemoryOrSwap;
+    @XmlElements({
+        @XmlElement(name = "WallDuration", type = WallDuration.class),
+        @XmlElement(name = "CpuDuration", type = CpuDuration.class),
+        @XmlElement(name = "NodeCount", type = NodeCount.class),
+        @XmlElement(name = "Processors", type = Processors.class),
+        @XmlElement(name = "EndTime", type = EndTime.class),
+        @XmlElement(name = "StartTime", type = StartTime.class),
+        @XmlElement(name = "MachineName", type = MachineName.class),
+        @XmlElement(name = "SubmitHost", type = SubmitHost.class),
+        @XmlElement(name = "Queue", type = Queue.class),
+        @XmlElement(name = "ProjectName", type = ProjectName.class),
+        @XmlElement(name = "Host", type = Host.class),
+        @XmlElement(name = "PhaseResource", type = PhaseResource.class),
+        @XmlElement(name = "VolumeResource", type = VolumeResource.class),
+        @XmlElement(name = "Resource", type = ResourceType.class),
+        @XmlElement(name = "ConsumableResource", type = ConsumableResourceType.class)
+    })
+    protected List<Object> wallDurationOrCpuDurationOrNodeCount;
+
+    /**
+     * Gets the value of the recordIdentity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link RecordIdentity }
+     *     
+     */
+    public RecordIdentity getRecordIdentity() {
+        return recordIdentity;
+    }
+
+    /**
+     * Sets the value of the recordIdentity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link RecordIdentity }
+     *     
+     */
+    public void setRecordIdentity(RecordIdentity value) {
+        this.recordIdentity = value;
+    }
+
+    /**
+     * Gets the value of the jobIdentity property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link JobIdentity }
+     *     
+     */
+    public JobIdentity getJobIdentity() {
+        return jobIdentity;
+    }
+
+    /**
+     * Sets the value of the jobIdentity property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link JobIdentity }
+     *     
+     */
+    public void setJobIdentity(JobIdentity value) {
+        this.jobIdentity = value;
+    }
+
+    /**
+     * Gets the value of the userIdentity 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 userIdentity property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getUserIdentity().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link UserIdentity }
+     * 
+     * 
+     */
+    public List<UserIdentity> getUserIdentity() {
+        if (userIdentity == null) {
+            userIdentity = new ArrayList<UserIdentity>();
+        }
+        return this.userIdentity;
+    }
+
+    /**
+     * Gets the value of the jobName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link JobName }
+     *     
+     */
+    public JobName getJobName() {
+        return jobName;
+    }
+
+    /**
+     * Sets the value of the jobName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link JobName }
+     *     
+     */
+    public void setJobName(JobName value) {
+        this.jobName = value;
+    }
+
+    /**
+     * Gets the value of the charge property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Charge }
+     *     
+     */
+    public Charge getCharge() {
+        return charge;
+    }
+
+    /**
+     * Sets the value of the charge property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Charge }
+     *     
+     */
+    public void setCharge(Charge value) {
+        this.charge = value;
+    }
+
+    /**
+     * Gets the value of the status property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Status }
+     *     
+     */
+    public Status getStatus() {
+        return status;
+    }
+
+    /**
+     * Sets the value of the status property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Status }
+     *     
+     */
+    public void setStatus(Status value) {
+        this.status = value;
+    }
+
+    /**
+     * Gets the value of the diskOrMemoryOrSwap 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 diskOrMemoryOrSwap property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getDiskOrMemoryOrSwap().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link Disk }
+     * {@link Memory }
+     * {@link Swap }
+     * {@link Network }
+     * {@link TimeDuration }
+     * {@link TimeInstant }
+     * {@link ServiceLevel }
+     * 
+     * 
+     */
+    public List<Object> getDiskOrMemoryOrSwap() {
+        if (diskOrMemoryOrSwap == null) {
+            diskOrMemoryOrSwap = new ArrayList<Object>();
+        }
+        return this.diskOrMemoryOrSwap;
+    }
+
+    /**
+     * Gets the value of the wallDurationOrCpuDurationOrNodeCount 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 wallDurationOrCpuDurationOrNodeCount property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getWallDurationOrCpuDurationOrNodeCount().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link WallDuration }
+     * {@link CpuDuration }
+     * {@link NodeCount }
+     * {@link Processors }
+     * {@link EndTime }
+     * {@link StartTime }
+     * {@link MachineName }
+     * {@link SubmitHost }
+     * {@link Queue }
+     * {@link ProjectName }
+     * {@link Host }
+     * {@link PhaseResource }
+     * {@link VolumeResource }
+     * {@link ResourceType }
+     * {@link ConsumableResourceType }
+     * 
+     * 
+     */
+    public List<Object> getWallDurationOrCpuDurationOrNodeCount() {
+        if (wallDurationOrCpuDurationOrNodeCount == null) {
+            wallDurationOrCpuDurationOrNodeCount = new ArrayList<Object>();
+        }
+        return this.wallDurationOrCpuDurationOrNodeCount;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecords.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecords.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecords.java
new file mode 100644
index 0000000..abbd2da
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UsageRecords.java
@@ -0,0 +1,75 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>UsageRecords</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=18">GFD.98 section 8.3</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "usage"
+})
+@XmlRootElement(name = "UsageRecords")
+public class UsageRecords {
+
+    @XmlElementRef(name = "Usage", namespace = "http://schema.ogf.org/urf/2003/09/urf", type = JAXBElement.class, required = false)
+    protected List<JAXBElement<? extends UsageRecordType>> usage;
+
+    /**
+     * Gets the value of the usage 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 usage property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getUsage().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link JAXBElement }{@code <}{@link UsageRecordType }{@code >}
+     * {@link JAXBElement }{@code <}{@link UsageRecordType }{@code >}
+     * {@link JAXBElement }{@code <}{@link JobUsageRecord }{@code >}
+     * 
+     * 
+     */
+    public List<JAXBElement<? extends UsageRecordType>> getUsage() {
+        if (usage == null) {
+            usage = new ArrayList<JAXBElement<? extends UsageRecordType>>();
+        }
+        return this.usage;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UserIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UserIdentity.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UserIdentity.java
new file mode 100644
index 0000000..7eaf8eb
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/UserIdentity.java
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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;
+import org.apache.taverna.server.usagerecord.xml.dsig.KeyInfoType;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>UserIdentity</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=25">GFD.98 section 11.3</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "localUserId",
+    "globalUserName",
+    "keyInfo"
+})
+@XmlRootElement(name = "UserIdentity")
+public class UserIdentity {
+
+    @XmlElement(name = "LocalUserId")
+    protected String localUserId;
+    @XmlElement(name = "GlobalUserName")
+    protected String globalUserName;
+    @XmlElement(name = "KeyInfo", namespace = "http://www.w3.org/2000/09/xmldsig#")
+    protected KeyInfoType keyInfo;
+
+    /**
+     * Gets the value of the localUserId property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLocalUserId() {
+        return localUserId;
+    }
+
+    /**
+     * Sets the value of the localUserId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLocalUserId(String value) {
+        this.localUserId = value;
+    }
+
+    /**
+     * Gets the value of the globalUserName property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getGlobalUserName() {
+        return globalUserName;
+    }
+
+    /**
+     * Sets the value of the globalUserName property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setGlobalUserName(String value) {
+        this.globalUserName = value;
+    }
+
+    /**
+     * Gets the value of the keyInfo property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public KeyInfoType getKeyInfo() {
+        return keyInfo;
+    }
+
+    /**
+     * Sets the value of the keyInfo property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link KeyInfoType }
+     *     
+     */
+    public void setKeyInfo(KeyInfoType value) {
+        this.keyInfo = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/VolumeResource.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/VolumeResource.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/VolumeResource.java
new file mode 100644
index 0000000..9a259d4
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/VolumeResource.java
@@ -0,0 +1,68 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>VolumeResource</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page-38">GFD.98 section 13.2.4</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "VolumeResource")
+public class VolumeResource
+    extends ConsumableResourceType
+{
+
+    @XmlAttribute(name = "storageUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String storageUnit;
+
+    /**
+     * Gets the value of the storageUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStorageUnit() {
+        return storageUnit;
+    }
+
+    /**
+     * Sets the value of the storageUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStorageUnit(String value) {
+        this.storageUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/WallDuration.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/WallDuration.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/WallDuration.java
new file mode 100644
index 0000000..f584aaf
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/WallDuration.java
@@ -0,0 +1,93 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>WallDuration</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=28">GFD.98 section 11.7</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "WallDuration")
+public class WallDuration {
+
+    @XmlValue
+    protected Duration value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setValue(Duration value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
new file mode 100644
index 0000000..d080d1e
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
@@ -0,0 +1,18 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://schema.ogf.org/urf/2003/09/urf", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.taverna.server.usagerecord.xml.urf;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/resources/META-INF/LICENSE
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/resources/META-INF/LICENSE b/taverna-server-usagerecord/src/main/resources/META-INF/LICENSE
index 614ea82..80b8447 100644
--- a/taverna-server-usagerecord/src/main/resources/META-INF/LICENSE
+++ b/taverna-server-usagerecord/src/main/resources/META-INF/LICENSE
@@ -204,4 +204,4 @@
 taverna-server-usagerecord/src/main/xsd/xmlds.xsd
 is licensed by the W3C Software License
 http://www.w3.org/Consortium/Legal/copyright-software-19980720
----------------------------------------------------------
\ No newline at end of file
+---------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/resources/META-INF/NOTICE
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/resources/META-INF/NOTICE b/taverna-server-usagerecord/src/main/resources/META-INF/NOTICE
index a7a744a..b976c0f 100644
--- a/taverna-server-usagerecord/src/main/resources/META-INF/NOTICE
+++ b/taverna-server-usagerecord/src/main/resources/META-INF/NOTICE
@@ -9,7 +9,9 @@ Portions of this software were originally based on the following:
 These have been licensed to the Apache Software Foundation under a software grant.
 
 ---------------------------------------------------------
-taverna-server-usagerecord/src/main/xsd/urf.xsd
+org.apache.taverna.server.usagerecord.xml.urf classes are
+derived from https://www.ogf.org/documents/GFD.98.pdf
+and http://schemas.ogf.org/urf/2003/09/url
 
       Usage Record Working Group XML Schema definition (GFD.98)
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/xsd/binding.xjb
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/xsd/binding.xjb b/taverna-server-usagerecord/src/main/xsd/binding.xjb
index 3ce0335..d8835aa 100644
--- a/taverna-server-usagerecord/src/main/xsd/binding.xjb
+++ b/taverna-server-usagerecord/src/main/xsd/binding.xjb
@@ -18,15 +18,10 @@
 <jaxb:bindings version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
 	xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 	>
-	<jaxb:bindings scd="x-schema::dsig" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
+	<jaxb:bindings scd="x-schema::dsig"
+		xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
 		<jaxb:schemaBindings>
 			<jaxb:package name="org.apache.taverna.server.usagerecord.xml.dsig" />
 		</jaxb:schemaBindings>
 	</jaxb:bindings>
-	<jaxb:bindings scd="x-schema::urf"
-		xmlns:urf="http://schema.ogf.org/urf/2003/09/urf">
-		<jaxb:schemaBindings>
-			<jaxb:package name="org.apache.taverna.server.usagerecord.xml.urf" />
-		</jaxb:schemaBindings>
-	</jaxb:bindings>
-</jaxb:bindings>
\ No newline at end of file
+</jaxb:bindings>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/xsd/urf.xsd
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/xsd/urf.xsd b/taverna-server-usagerecord/src/main/xsd/urf.xsd
deleted file mode 100644
index ac424a6..0000000
--- a/taverna-server-usagerecord/src/main/xsd/urf.xsd
+++ /dev/null
@@ -1,517 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<xsd:schema attributeFormDefault="qualified" elementFormDefault="qualified"
-        targetNamespace="http://schema.ogf.org/urf/2003/09/urf"
-        xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
-        xmlns:urf="http://schema.ogf.org/urf/2003/09/urf"
-        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <xsd:annotation>
-    <xsd:documentation xml:lang="en">
-      Usage Record Working Group XML Schema definition (GFD.98)
-
-      Copyright (C) Open Grid Forum (2006-2007). All Rights Reserved.
-
-      This document and translations of it may be copied and furnished to
-      others, and derivative works that comment on or otherwise explain it or
-      assist in its implementation may be prepared, copied, published and
-      distributed, in whole or in part, without restriction of any kind,
-      provided that the above copyright notice and this paragraph are included
-      on all such copies and derivative works. However, this document itself
-      may not be modified in any way, such as by removing the copyright notice
-      or references to the OGF or other organizations, except as needed for
-      the purpose of developing Grid Recommendations in which case the
-      procedures for copyrights defined in the OGF Document process must be
-      followed, or as required to translate it into languages other than
-      English.
-
-      The limited permissions granted above are perpetual and will not be
-      revoked by the OGF or its successors or assignees.
-
-      This document and the information contained herein is provided on an "As
-      Is" basis and the OGF disclaims all warranties, express or implied,
-      including but not limited to any warranty that the use of the
-      information herein will not infringe any rights or any implied
-      warranties of merchantability or fitness for a particular purpose.
-    </xsd:documentation>
-  </xsd:annotation>
-
-  <!--
-  <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#"
-          schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd" />
-
-  Changed for Apache Taverna: imported locally instead to avoid w3.org "tar-pit"
-  -->
-  <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#"
-          schemaLocation="xmlds.xsd" />
-
-  <xsd:complexType name="UsageRecordType">
-    <xsd:sequence>
-      <xsd:element maxOccurs="1" minOccurs="1" ref="urf:RecordIdentity" />
-      <xsd:element maxOccurs="1" minOccurs="0" ref="urf:JobIdentity" />
-      <xsd:element maxOccurs="unbounded" minOccurs="0"
-              ref="urf:UserIdentity" />
-      <xsd:element maxOccurs="1" minOccurs="0" ref="urf:JobName" />
-      <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Charge" />
-      <xsd:element maxOccurs="1" minOccurs="1" ref="urf:Status" />
-      <xsd:choice maxOccurs="unbounded" minOccurs="0">
-        <xsd:annotation>
-          <xsd:documentation>
-            The elements grouped together in this choice may be represented
-            within a usage record multiple times. Each of these appearances
-            must be differentiated by the metric and/or type associated with
-            the element.
-          </xsd:documentation>
-        </xsd:annotation>
-        <xsd:element ref="urf:Disk" />
-        <xsd:element ref="urf:Memory" />
-        <xsd:element ref="urf:Swap" />
-        <xsd:element ref="urf:Network" />
-        <xsd:element ref="urf:TimeDuration" />
-        <xsd:element ref="urf:TimeInstant" />
-        <xsd:element ref="urf:ServiceLevel" />
-      </xsd:choice>
-      <xsd:choice maxOccurs="unbounded" minOccurs="0">
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:WallDuration" />
-        <xsd:sequence maxOccurs="1" minOccurs="0">
-          <xsd:element maxOccurs="2" minOccurs="0" ref="urf:CpuDuration" />
-        </xsd:sequence>
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:NodeCount" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Processors" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:EndTime" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:StartTime" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:MachineName" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:SubmitHost" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="urf:Queue" />
-        <xsd:sequence maxOccurs="1" minOccurs="0">
-          <xsd:element maxOccurs="unbounded" minOccurs="0"
-                  ref="urf:ProjectName" />
-        </xsd:sequence>
-        <xsd:sequence maxOccurs="1" minOccurs="0">
-          <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Host" />
-        </xsd:sequence>
-        <xsd:sequence maxOccurs="1" minOccurs="0">
-          <xsd:choice maxOccurs="unbounded" minOccurs="0">
-            <xsd:element ref="urf:PhaseResource" />
-            <xsd:element ref="urf:VolumeResource" />
-            <xsd:element ref="urf:Resource" />
-            <xsd:element ref="urf:ConsumableResource" />
-          </xsd:choice>
-        </xsd:sequence>
-      </xsd:choice>
-    </xsd:sequence>
-  </xsd:complexType>
-
-  <xsd:element abstract="true" name="Usage" type="urf:UsageRecordType" />
-
-  <xsd:element name="UsageRecord" substitutionGroup="urf:Usage"
-          type="urf:UsageRecordType" />
-
-  <xsd:element name="JobUsageRecord" substitutionGroup="urf:Usage">
-    <xsd:complexType>
-      <xsd:complexContent>
-        <xsd:extension base="urf:UsageRecordType" />
-      </xsd:complexContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="UsageRecords">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element maxOccurs="unbounded" minOccurs="0" ref="urf:Usage" />
-      </xsd:sequence>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!--
-        Common properties that may be measured with several different metrics
-        within the same usage record
-  -->
-
-  <xsd:element name="Network">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attributeGroup ref="urf:intervallicVolume" />
-          <xsd:attribute default="total" ref="urf:metric" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Disk">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attributeGroup ref="urf:intervallicVolume" />
-          <xsd:attribute default="total" ref="urf:metric" use="optional" />
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Memory">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attributeGroup ref="urf:intervallicVolume" />
-          <xsd:attribute default="total" ref="urf:metric" use="optional" />
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Swap">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attributeGroup ref="urf:intervallicVolume" />
-          <xsd:attribute default="total" ref="urf:metric" use="optional" />
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="NodeCount">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attribute default="total" ref="urf:metric" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Processors">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:positiveInteger">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attribute ref="urf:metric" use="optional" />
-          <xsd:attribute name="consumptionRate" type="xsd:float"
-                  use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="TimeDuration">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:duration">
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="TimeInstant">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:dateTime">
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="ServiceLevel">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:token">
-          <xsd:attribute ref="urf:type" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!--
-        This element should appear at most twice within a usage record, with
-        differing values for usageType for each appearance
-  -->
-
-  <xsd:element name="CpuDuration">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:duration">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attribute name="usageType">
-            <xsd:simpleType>
-              <xsd:restriction base="xsd:token">
-                <xsd:enumeration value="user" />
-                <xsd:enumeration value="system" />
-              </xsd:restriction>
-            </xsd:simpleType>
-          </xsd:attribute>
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!--
-        These common properties should appear at most once within a usage
-        record, rather that at most once per metric per usage record
-  -->
-
-  <xsd:element name="WallDuration">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:duration">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="EndTime">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:dateTime">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="StartTime">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:dateTime">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="MachineName">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="urf:domainNameType">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="SubmitHost">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="urf:domainNameType">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Host">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="urf:domainNameType">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attribute default="false" name="primary" type="xsd:boolean" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Queue">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="JobName">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="ProjectName">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:string">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Status">
-    <xsd:annotation>
-      <xsd:documentation>
-        Minimum required set =
-        {Aborted, Completed, Failed, Held, Queued, Started, Suspended}
-      </xsd:documentation>
-    </xsd:annotation>
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:token">
-          <xsd:attribute ref="urf:description" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="Charge">
-    <xsd:complexType>
-      <xsd:simpleContent>
-        <xsd:extension base="xsd:float">
-          <xsd:attribute ref="urf:description" use="optional" />
-          <xsd:attribute ref="urf:unit" use="optional" />
-          <xsd:attribute name="formula" type="xsd:string" use="optional" />
-        </xsd:extension>
-      </xsd:simpleContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!-- Identity elements -->
-
-  <xsd:element name="JobIdentity">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element maxOccurs="1" minOccurs="0" name="GlobalJobId"
-                type="xsd:string" />
-        <xsd:element maxOccurs="1" minOccurs="0" name="LocalJobId"
-                type="xsd:string" />
-        <xsd:sequence>
-          <xsd:element maxOccurs="unbounded" minOccurs="0" name="ProcessId"
-                  type="xsd:string" />
-        </xsd:sequence>
-      </xsd:sequence>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="UserIdentity">
-    <xsd:complexType>
-      <xsd:sequence>
-        <xsd:element maxOccurs="1" minOccurs="0" name="LocalUserId"
-                type="xsd:string" />
-        <xsd:element maxOccurs="1" minOccurs="0" name="GlobalUserName"
-                type="xsd:string" />
-        <xsd:element maxOccurs="1" minOccurs="0" ref="ds:KeyInfo" />
-      </xsd:sequence>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="RecordIdentity">
-    <xsd:complexType>
-      <xsd:sequence maxOccurs="1" minOccurs="0">
-        <xsd:element ref="ds:KeyInfo" />
-      </xsd:sequence>
-      <xsd:attribute name="recordId" type="xsd:token" use="required" />
-      <xsd:attribute name="createTime" type="xsd:dateTime" use="optional" />
-    </xsd:complexType>
-  </xsd:element>
-
-  <!-- Extensibility Framework -->
-
-  <xsd:element name="Resource" type="urf:ResourceType" />
-
-  <xsd:element name="ConsumableResource" type="urf:ConsumableResourceType" />
-
-  <xsd:element name="PhaseResource">
-    <xsd:complexType>
-      <xsd:complexContent>
-        <xsd:extension base="urf:ConsumableResourceType">
-          <xsd:attribute ref="urf:phaseUnit" use="optional" />
-        </xsd:extension>
-      </xsd:complexContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <xsd:element name="VolumeResource">
-    <xsd:complexType>
-      <xsd:complexContent>
-        <xsd:extension base="urf:ConsumableResourceType">
-          <xsd:attribute ref="urf:storageUnit" use="optional" />
-        </xsd:extension>
-      </xsd:complexContent>
-    </xsd:complexType>
-  </xsd:element>
-
-  <!-- Create a generic consumable resource. Carries the units attribute -->
-
-  <xsd:complexType name="ConsumableResourceType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:float">
-        <xsd:attribute name="units" type="xsd:string" use="optional" />
-        <xsd:attribute ref="urf:description" use="optional" />
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-  <!-- Create a generic resource type -->
-
-  <xsd:complexType name="ResourceType">
-    <xsd:simpleContent>
-      <xsd:extension base="xsd:string">
-        <xsd:attribute ref="urf:description" use="optional" />
-      </xsd:extension>
-    </xsd:simpleContent>
-  </xsd:complexType>
-
-  <!-- Global Attribute Definitions -->
-
-  <xsd:attribute name="description" type="xsd:string" />
-
-  <!-- Units of measure attribute definitions -->
-
-  <xsd:attribute name="unit" type="xsd:token" />
-
-  <xsd:attribute name="storageUnit">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:token">
-        <xsd:enumeration value="b" />
-        <xsd:enumeration value="B" />
-        <xsd:enumeration value="KB" />
-        <xsd:enumeration value="MB" />
-        <xsd:enumeration value="GB" />
-        <xsd:enumeration value="PB" />
-        <xsd:enumeration value="EB" />
-        <xsd:enumeration value="Kb" />
-        <xsd:enumeration value="Mb" />
-        <xsd:enumeration value="Gb" />
-        <xsd:enumeration value="Pb" />
-        <xsd:enumeration value="Eb" />
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-
-  <xsd:attribute name="phaseUnit" type="xsd:duration" />
-
-  <xsd:attributeGroup name="intervallicVolume">
-    <xsd:attribute ref="urf:storageUnit" use="optional" />
-    <xsd:attribute ref="urf:phaseUnit" use="optional" />
-  </xsd:attributeGroup>
-
-  <!-- End units attributes -->
-
-  <xsd:attribute name="metric" type="xsd:token" />
-
-  <xsd:attribute name="type" type="xsd:token" />
-
-  <!-- Simple type definitions used to constrain values of attributes -->
-
-  <xsd:simpleType name="domainNameType">
-    <xsd:restriction base="xsd:string">
-      <xsd:pattern
-              value="([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9]\.)*([a-zA-Z0-9][a-zA-Z0-9'\-']*[a-zA-Z0-9])?" />
-      <xsd:maxLength value="255" />
-    </xsd:restriction>
-  </xsd:simpleType>
-</xsd:schema>


[2/3] incubator-taverna-server git commit: Implicit classes for JAXB beans for Usage Records

Posted by st...@apache.org.
Implicit classes for JAXB beans for  Usage Records

These classes were derived (using maven-jaxb2-plugin)
from the XML schema at
http://schemas.ogf.org/urf/2003/09/url.xml
which license permits derivative works as long as the below license text
is included. (Note that "This Document" below refers to the XML Schema
file which is *not* included in this source repository)

  Usage Record Working Group XML Schema definition (GFD.98)

  Copyright (C) Open Grid Forum (2006-2007). All Rights Reserved.

  This document and translations of it may be copied and furnished to
  others, and derivative works that comment on or otherwise explain it or
  assist in its implementation may be prepared, copied, published and
  distributed, in whole or in part, without restriction of any kind,
  provided that the above copyright notice and this paragraph are included
  on all such copies and derivative works. However, this document itself
  may not be modified in any way, such as by removing the copyright notice
  or references to the OGF or other organizations, except as needed for
  the purpose of developing Grid Recommendations in which case the
  procedures for copyrights defined in the OGF Document process must be
  followed, or as required to translate it into languages other than
  English.

  The limited permissions granted above are perpetual and will not be
  revoked by the OGF or its successors or assignees.

  This document and the information contained herein is provided on
  an "As Is" basis and the OGF disclaims all warranties, express or
  implied, including but not limited to any warranty that the use of the
  information herein will not infringe any rights or any implied
  warranties of merchantability or fitness for a particular purpose.


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/commit/ccbf9ef9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/tree/ccbf9ef9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/diff/ccbf9ef9

Branch: refs/heads/master
Commit: ccbf9ef9b3c705d7eba2e7030445377233f5e59c
Parents: 0e48697
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jan 4 11:23:32 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jan 4 11:23:32 2018 +0000

----------------------------------------------------------------------
 .../server/usagerecord/xml/urf/Charge.java      | 141 +++++
 .../xml/urf/ConsumableResourceType.java         | 113 ++++
 .../server/usagerecord/xml/urf/CpuDuration.java | 122 +++++
 .../server/usagerecord/xml/urf/Disk.java        | 211 ++++++++
 .../server/usagerecord/xml/urf/EndTime.java     |  95 ++++
 .../server/usagerecord/xml/urf/Host.java        | 122 +++++
 .../server/usagerecord/xml/urf/JobIdentity.java | 126 +++++
 .../server/usagerecord/xml/urf/JobName.java     |  92 ++++
 .../usagerecord/xml/urf/JobUsageRecord.java     |  37 ++
 .../server/usagerecord/xml/urf/MachineName.java |  92 ++++
 .../server/usagerecord/xml/urf/Memory.java      | 211 ++++++++
 .../server/usagerecord/xml/urf/Network.java     | 182 +++++++
 .../server/usagerecord/xml/urf/NodeCount.java   | 128 +++++
 .../usagerecord/xml/urf/ObjectFactory.java      | 348 +++++++++++++
 .../usagerecord/xml/urf/PhaseResource.java      |  66 +++
 .../server/usagerecord/xml/urf/Processors.java  | 151 ++++++
 .../server/usagerecord/xml/urf/ProjectName.java |  92 ++++
 .../server/usagerecord/xml/urf/Queue.java       |  92 ++++
 .../usagerecord/xml/urf/RecordIdentity.java     | 126 +++++
 .../usagerecord/xml/urf/ResourceType.java       |  91 ++++
 .../usagerecord/xml/urf/ServiceLevel.java       |  99 ++++
 .../server/usagerecord/xml/urf/StartTime.java   |  95 ++++
 .../server/usagerecord/xml/urf/Status.java      |  98 ++++
 .../server/usagerecord/xml/urf/SubmitHost.java  |  92 ++++
 .../server/usagerecord/xml/urf/Swap.java        | 211 ++++++++
 .../usagerecord/xml/urf/TimeDuration.java       |  98 ++++
 .../server/usagerecord/xml/urf/TimeInstant.java |  99 ++++
 .../usagerecord/xml/urf/UsageRecordType.java    | 318 ++++++++++++
 .../usagerecord/xml/urf/UsageRecords.java       |  75 +++
 .../usagerecord/xml/urf/UserIdentity.java       | 120 +++++
 .../usagerecord/xml/urf/VolumeResource.java     |  68 +++
 .../usagerecord/xml/urf/WallDuration.java       |  93 ++++
 .../usagerecord/xml/urf/package-info.java       |  18 +
 .../src/main/resources/META-INF/LICENSE         |   2 +-
 .../src/main/resources/META-INF/NOTICE          |   4 +-
 .../src/main/xsd/binding.xjb                    |  11 +-
 taverna-server-usagerecord/src/main/xsd/urf.xsd | 517 -------------------
 37 files changed, 4129 insertions(+), 527 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Charge.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Charge.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Charge.java
new file mode 100644
index 0000000..065588c
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Charge.java
@@ -0,0 +1,141 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Charge</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=27">GFD.98 section 11.5</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Charge")
+public class Charge {
+
+    @XmlValue
+    protected float value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "unit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String unit;
+    @XmlAttribute(name = "formula", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String formula;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public float getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(float value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the unit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUnit() {
+        return unit;
+    }
+
+    /**
+     * Sets the value of the unit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUnit(String value) {
+        this.unit = value;
+    }
+
+    /**
+     * Gets the value of the formula property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getFormula() {
+        return formula;
+    }
+
+    /**
+     * Sets the value of the formula property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setFormula(String value) {
+        this.formula = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ConsumableResourceType.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ConsumableResourceType.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ConsumableResourceType.java
new file mode 100644
index 0000000..98d486d
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ConsumableResourceType.java
@@ -0,0 +1,113 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlSeeAlso;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>ConsumableResourceType</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page-37">GFD.98 section 13.1.2</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "ConsumableResourceType", propOrder = {
+    "value"
+})
+@XmlSeeAlso({
+    VolumeResource.class,
+    PhaseResource.class
+})
+public class ConsumableResourceType {
+
+    @XmlValue
+    protected float value;
+    @XmlAttribute(name = "units", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String units;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     */
+    public float getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     */
+    public void setValue(float value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the units property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUnits() {
+        return units;
+    }
+
+    /**
+     * Sets the value of the units property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUnits(String value) {
+        this.units = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/CpuDuration.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/CpuDuration.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/CpuDuration.java
new file mode 100644
index 0000000..e76dabb
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/CpuDuration.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>CpuDuration</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=29">GFD.98 section 11.8</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "CpuDuration")
+public class CpuDuration {
+
+    @XmlValue
+    protected Duration value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "usageType", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String usageType;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setValue(Duration value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the usageType property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getUsageType() {
+        return usageType;
+    }
+
+    /**
+     * Sets the value of the usageType property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setUsageType(String value) {
+        this.usageType = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Disk.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Disk.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Disk.java
new file mode 100644
index 0000000..9316e80
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Disk.java
@@ -0,0 +1,211 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Disk</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=32">GFD.98 section 12.2</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Disk")
+public class Disk {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+    @XmlAttribute(name = "storageUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String storageUnit;
+    @XmlAttribute(name = "phaseUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Duration phaseUnit;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        if (metric == null) {
+            return "total";
+        } else {
+            return metric;
+        }
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+    /**
+     * Gets the value of the storageUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStorageUnit() {
+        return storageUnit;
+    }
+
+    /**
+     * Sets the value of the storageUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStorageUnit(String value) {
+        this.storageUnit = value;
+    }
+
+    /**
+     * Gets the value of the phaseUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getPhaseUnit() {
+        return phaseUnit;
+    }
+
+    /**
+     * Sets the value of the phaseUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setPhaseUnit(Duration value) {
+        this.phaseUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/EndTime.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/EndTime.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/EndTime.java
new file mode 100644
index 0000000..c685ec5
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/EndTime.java
@@ -0,0 +1,95 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.datatype.XMLGregorianCalendar;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>EndTime</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=29">GFD.98 section 11.9</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "EndTime")
+public class EndTime {
+
+    @XmlValue
+    @XmlSchemaType(name = "dateTime")
+    protected XMLGregorianCalendar value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public XMLGregorianCalendar getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link XMLGregorianCalendar }
+     *     
+     */
+    public void setValue(XMLGregorianCalendar value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Host.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Host.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Host.java
new file mode 100644
index 0000000..0780cd7
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Host.java
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Host</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=30">GFD.98 section 11.12</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Host")
+public class Host {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "primary", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Boolean primary;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the primary property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Boolean }
+     *     
+     */
+    public Boolean getPrimary() {
+        if (primary == null) {
+            return false;
+        } else {
+            return primary;
+        }
+    }
+
+    /**
+     * Sets the value of the primary property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Boolean }
+     *     
+     */
+    public void setPrimary(Boolean value) {
+        this.primary = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobIdentity.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobIdentity.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobIdentity.java
new file mode 100644
index 0000000..86aebb8
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobIdentity.java
@@ -0,0 +1,126 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>JobIdentity</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=25">GFD.98 section 11.2</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "globalJobId",
+    "localJobId",
+    "processId"
+})
+@XmlRootElement(name = "JobIdentity")
+public class JobIdentity {
+
+    @XmlElement(name = "GlobalJobId")
+    protected String globalJobId;
+    @XmlElement(name = "LocalJobId")
+    protected String localJobId;
+    @XmlElement(name = "ProcessId")
+    protected List<String> processId;
+
+    /**
+     * Gets the value of the globalJobId property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getGlobalJobId() {
+        return globalJobId;
+    }
+
+    /**
+     * Sets the value of the globalJobId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setGlobalJobId(String value) {
+        this.globalJobId = value;
+    }
+
+    /**
+     * Gets the value of the localJobId property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getLocalJobId() {
+        return localJobId;
+    }
+
+    /**
+     * Sets the value of the localJobId property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setLocalJobId(String value) {
+        this.localJobId = value;
+    }
+
+    /**
+     * Gets the value of the processId 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 processId property.
+     * 
+     * <p>
+     * For example, to add a new item, do as follows:
+     * <pre>
+     *    getProcessId().add(newItem);
+     * </pre>
+     * 
+     * 
+     * <p>
+     * Objects of the following type(s) are allowed in the list
+     * {@link String }
+     * 
+     * 
+     */
+    public List<String> getProcessId() {
+        if (processId == null) {
+            processId = new ArrayList<String>();
+        }
+        return this.processId;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobName.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobName.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobName.java
new file mode 100644
index 0000000..708304b
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobName.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>JobName</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=27">GFD.98 section 11.4</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "JobName")
+public class JobName {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
new file mode 100644
index 0000000..282f1d3
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>JobUsageRecord</code>
+ * 
+ * @see org.apache.taverna.server.usagerecord.JobUsageRecord
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=18">GFD.98 section 8.2</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+public class JobUsageRecord
+    extends UsageRecordType
+{
+
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/MachineName.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/MachineName.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/MachineName.java
new file mode 100644
index 0000000..a9efe7f
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/MachineName.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>MachineName</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=30">GFD.98 section 11.11</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "MachineName")
+public class MachineName {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Memory.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Memory.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Memory.java
new file mode 100644
index 0000000..7c0ba6a
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Memory.java
@@ -0,0 +1,211 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Memory</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=33">GFD.98 section 12.3</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Memory")
+public class Memory {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+    @XmlAttribute(name = "type", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String type;
+    @XmlAttribute(name = "storageUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String storageUnit;
+    @XmlAttribute(name = "phaseUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Duration phaseUnit;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        if (metric == null) {
+            return "total";
+        } else {
+            return metric;
+        }
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+    /**
+     * Gets the value of the type property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getType() {
+        return type;
+    }
+
+    /**
+     * Sets the value of the type property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setType(String value) {
+        this.type = value;
+    }
+
+    /**
+     * Gets the value of the storageUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStorageUnit() {
+        return storageUnit;
+    }
+
+    /**
+     * Sets the value of the storageUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStorageUnit(String value) {
+        this.storageUnit = value;
+    }
+
+    /**
+     * Gets the value of the phaseUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getPhaseUnit() {
+        return phaseUnit;
+    }
+
+    /**
+     * Sets the value of the phaseUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setPhaseUnit(Duration value) {
+        this.phaseUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Network.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Network.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Network.java
new file mode 100644
index 0000000..f782713
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Network.java
@@ -0,0 +1,182 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Network</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=32">GFD.98 section 12.1</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Network")
+public class Network {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+    @XmlAttribute(name = "storageUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    protected String storageUnit;
+    @XmlAttribute(name = "phaseUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Duration phaseUnit;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        if (metric == null) {
+            return "total";
+        } else {
+            return metric;
+        }
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+    /**
+     * Gets the value of the storageUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getStorageUnit() {
+        return storageUnit;
+    }
+
+    /**
+     * Sets the value of the storageUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setStorageUnit(String value) {
+        this.storageUnit = value;
+    }
+
+    /**
+     * Gets the value of the phaseUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getPhaseUnit() {
+        return phaseUnit;
+    }
+
+    /**
+     * Sets the value of the phaseUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setPhaseUnit(Duration value) {
+        this.phaseUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/NodeCount.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/NodeCount.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/NodeCount.java
new file mode 100644
index 0000000..ca5a249
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/NodeCount.java
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>NodeCount</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=34">GFD.98 section 12.5</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "NodeCount")
+public class NodeCount {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        if (metric == null) {
+            return "total";
+        } else {
+            return metric;
+        }
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ObjectFactory.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ObjectFactory.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ObjectFactory.java
new file mode 100644
index 0000000..3b13408
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ObjectFactory.java
@@ -0,0 +1,348 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.annotation.XmlElementDecl;
+import javax.xml.bind.annotation.XmlRegistry;
+import javax.xml.namespace.QName;
+
+
+/**
+ * This object contains factory methods for each 
+ * Java content interface and Java element interface 
+ * generated in the org.apache.taverna.server.usagerecord.xml.urf 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.
+ * 
+ */
+@XmlRegistry
+public class ObjectFactory {
+
+    private final static QName _Usage_QNAME = new QName("http://schema.ogf.org/urf/2003/09/urf", "Usage");
+    private final static QName _UsageRecord_QNAME = new QName("http://schema.ogf.org/urf/2003/09/urf", "UsageRecord");
+    private final static QName _JobUsageRecord_QNAME = new QName("http://schema.ogf.org/urf/2003/09/urf", "JobUsageRecord");
+    private final static QName _Resource_QNAME = new QName("http://schema.ogf.org/urf/2003/09/urf", "Resource");
+    private final static QName _ConsumableResource_QNAME = new QName("http://schema.ogf.org/urf/2003/09/urf", "ConsumableResource");
+
+    /**
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.taverna.server.usagerecord.xml.urf
+     * 
+     */
+    public ObjectFactory() {
+    }
+
+    /**
+     * Create an instance of {@link UsageRecordType }
+     * 
+     */
+    public UsageRecordType createUsageRecordType() {
+        return new UsageRecordType();
+    }
+
+    /**
+     * Create an instance of {@link JobUsageRecord }
+     * 
+     */
+    public JobUsageRecord createJobUsageRecord() {
+        return new JobUsageRecord();
+    }
+
+    /**
+     * Create an instance of {@link UsageRecords }
+     * 
+     */
+    public UsageRecords createUsageRecords() {
+        return new UsageRecords();
+    }
+
+    /**
+     * Create an instance of {@link Network }
+     * 
+     */
+    public Network createNetwork() {
+        return new Network();
+    }
+
+    /**
+     * Create an instance of {@link Disk }
+     * 
+     */
+    public Disk createDisk() {
+        return new Disk();
+    }
+
+    /**
+     * Create an instance of {@link Memory }
+     * 
+     */
+    public Memory createMemory() {
+        return new Memory();
+    }
+
+    /**
+     * Create an instance of {@link Swap }
+     * 
+     */
+    public Swap createSwap() {
+        return new Swap();
+    }
+
+    /**
+     * Create an instance of {@link NodeCount }
+     * 
+     */
+    public NodeCount createNodeCount() {
+        return new NodeCount();
+    }
+
+    /**
+     * Create an instance of {@link Processors }
+     * 
+     */
+    public Processors createProcessors() {
+        return new Processors();
+    }
+
+    /**
+     * Create an instance of {@link TimeDuration }
+     * 
+     */
+    public TimeDuration createTimeDuration() {
+        return new TimeDuration();
+    }
+
+    /**
+     * Create an instance of {@link TimeInstant }
+     * 
+     */
+    public TimeInstant createTimeInstant() {
+        return new TimeInstant();
+    }
+
+    /**
+     * Create an instance of {@link ServiceLevel }
+     * 
+     */
+    public ServiceLevel createServiceLevel() {
+        return new ServiceLevel();
+    }
+
+    /**
+     * Create an instance of {@link CpuDuration }
+     * 
+     */
+    public CpuDuration createCpuDuration() {
+        return new CpuDuration();
+    }
+
+    /**
+     * Create an instance of {@link WallDuration }
+     * 
+     */
+    public WallDuration createWallDuration() {
+        return new WallDuration();
+    }
+
+    /**
+     * Create an instance of {@link EndTime }
+     * 
+     */
+    public EndTime createEndTime() {
+        return new EndTime();
+    }
+
+    /**
+     * Create an instance of {@link StartTime }
+     * 
+     */
+    public StartTime createStartTime() {
+        return new StartTime();
+    }
+
+    /**
+     * Create an instance of {@link MachineName }
+     * 
+     */
+    public MachineName createMachineName() {
+        return new MachineName();
+    }
+
+    /**
+     * Create an instance of {@link SubmitHost }
+     * 
+     */
+    public SubmitHost createSubmitHost() {
+        return new SubmitHost();
+    }
+
+    /**
+     * Create an instance of {@link Host }
+     * 
+     */
+    public Host createHost() {
+        return new Host();
+    }
+
+    /**
+     * Create an instance of {@link Queue }
+     * 
+     */
+    public Queue createQueue() {
+        return new Queue();
+    }
+
+    /**
+     * Create an instance of {@link JobName }
+     * 
+     */
+    public JobName createJobName() {
+        return new JobName();
+    }
+
+    /**
+     * Create an instance of {@link ProjectName }
+     * 
+     */
+    public ProjectName createProjectName() {
+        return new ProjectName();
+    }
+
+    /**
+     * Create an instance of {@link Status }
+     * 
+     */
+    public Status createStatus() {
+        return new Status();
+    }
+
+    /**
+     * Create an instance of {@link Charge }
+     * 
+     */
+    public Charge createCharge() {
+        return new Charge();
+    }
+
+    /**
+     * Create an instance of {@link JobIdentity }
+     * 
+     */
+    public JobIdentity createJobIdentity() {
+        return new JobIdentity();
+    }
+
+    /**
+     * Create an instance of {@link UserIdentity }
+     * 
+     */
+    public UserIdentity createUserIdentity() {
+        return new UserIdentity();
+    }
+
+    /**
+     * Create an instance of {@link RecordIdentity }
+     * 
+     */
+    public RecordIdentity createRecordIdentity() {
+        return new RecordIdentity();
+    }
+
+    /**
+     * Create an instance of {@link ResourceType }
+     * 
+     */
+    public ResourceType createResourceType() {
+        return new ResourceType();
+    }
+
+    /**
+     * Create an instance of {@link ConsumableResourceType }
+     * 
+     */
+    public ConsumableResourceType createConsumableResourceType() {
+        return new ConsumableResourceType();
+    }
+
+    /**
+     * Create an instance of {@link PhaseResource }
+     * 
+     */
+    public PhaseResource createPhaseResource() {
+        return new PhaseResource();
+    }
+
+    /**
+     * Create an instance of {@link VolumeResource }
+     * 
+     */
+    public VolumeResource createVolumeResource() {
+        return new VolumeResource();
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link UsageRecordType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schema.ogf.org/urf/2003/09/urf", name = "Usage")
+    public JAXBElement<UsageRecordType> createUsage(UsageRecordType value) {
+        return new JAXBElement<UsageRecordType>(_Usage_QNAME, UsageRecordType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link UsageRecordType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schema.ogf.org/urf/2003/09/urf", name = "UsageRecord", substitutionHeadNamespace = "http://schema.ogf.org/urf/2003/09/urf", substitutionHeadName = "Usage")
+    public JAXBElement<UsageRecordType> createUsageRecord(UsageRecordType value) {
+        return new JAXBElement<UsageRecordType>(_UsageRecord_QNAME, UsageRecordType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link JobUsageRecord }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schema.ogf.org/urf/2003/09/urf", name = "JobUsageRecord", substitutionHeadNamespace = "http://schema.ogf.org/urf/2003/09/urf", substitutionHeadName = "Usage")
+    public JAXBElement<JobUsageRecord> createJobUsageRecord(JobUsageRecord value) {
+        return new JAXBElement<JobUsageRecord>(_JobUsageRecord_QNAME, JobUsageRecord.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ResourceType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schema.ogf.org/urf/2003/09/urf", name = "Resource")
+    public JAXBElement<ResourceType> createResource(ResourceType value) {
+        return new JAXBElement<ResourceType>(_Resource_QNAME, ResourceType.class, null, value);
+    }
+
+    /**
+     * Create an instance of {@link JAXBElement }{@code <}{@link ConsumableResourceType }{@code >}}
+     * 
+     */
+    @XmlElementDecl(namespace = "http://schema.ogf.org/urf/2003/09/urf", name = "ConsumableResource")
+    public JAXBElement<ConsumableResourceType> createConsumableResource(ConsumableResourceType value) {
+        return new JAXBElement<ConsumableResourceType>(_ConsumableResource_QNAME, ConsumableResourceType.class, null, value);
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/PhaseResource.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/PhaseResource.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/PhaseResource.java
new file mode 100644
index 0000000..7c63e35
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/PhaseResource.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.datatype.Duration;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>PhaseResource</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page-38">GFD.98 section 13.2.3</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "")
+@XmlRootElement(name = "PhaseResource")
+public class PhaseResource
+    extends ConsumableResourceType
+{
+
+    @XmlAttribute(name = "phaseUnit", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Duration phaseUnit;
+
+    /**
+     * Gets the value of the phaseUnit property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Duration }
+     *     
+     */
+    public Duration getPhaseUnit() {
+        return phaseUnit;
+    }
+
+    /**
+     * Sets the value of the phaseUnit property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Duration }
+     *     
+     */
+    public void setPhaseUnit(Duration value) {
+        this.phaseUnit = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Processors.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Processors.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Processors.java
new file mode 100644
index 0000000..05f1974
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Processors.java
@@ -0,0 +1,151 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+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.XmlRootElement;
+import javax.xml.bind.annotation.XmlSchemaType;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Processors</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=34">GFD.98 section 12.6</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Processors")
+public class Processors {
+
+    @XmlValue
+    @XmlSchemaType(name = "positiveInteger")
+    protected BigInteger value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+    @XmlAttribute(name = "metric", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
+    @XmlSchemaType(name = "token")
+    protected String metric;
+    @XmlAttribute(name = "consumptionRate", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected Float consumptionRate;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @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 description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+    /**
+     * Gets the value of the metric property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getMetric() {
+        return metric;
+    }
+
+    /**
+     * Sets the value of the metric property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setMetric(String value) {
+        this.metric = value;
+    }
+
+    /**
+     * Gets the value of the consumptionRate property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link Float }
+     *     
+     */
+    public Float getConsumptionRate() {
+        return consumptionRate;
+    }
+
+    /**
+     * Sets the value of the consumptionRate property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link Float }
+     *     
+     */
+    public void setConsumptionRate(Float value) {
+        this.consumptionRate = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ProjectName.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ProjectName.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ProjectName.java
new file mode 100644
index 0000000..b97fed2
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/ProjectName.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>ProjectName</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=31">GFD.98 section 11.15</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "ProjectName")
+public class ProjectName {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/ccbf9ef9/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Queue.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Queue.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Queue.java
new file mode 100644
index 0000000..c7fbf09
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/Queue.java
@@ -0,0 +1,92 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.taverna.server.usagerecord.xml.urf;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+import javax.xml.bind.annotation.XmlValue;
+
+/**
+ * Open Grid Forum GFD.98 Usage Record type <code>Queue</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=31">GFD.98 section 11.14</a>
+ *
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "", propOrder = {
+    "value"
+})
+@XmlRootElement(name = "Queue")
+public class Queue {
+
+    @XmlValue
+    protected String value;
+    @XmlAttribute(name = "description", namespace = "http://schema.ogf.org/urf/2003/09/urf")
+    protected String description;
+
+    /**
+     * Gets the value of the value property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getValue() {
+        return value;
+    }
+
+    /**
+     * Sets the value of the value property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setValue(String value) {
+        this.value = value;
+    }
+
+    /**
+     * Gets the value of the description property.
+     * 
+     * @return
+     *     possible object is
+     *     {@link String }
+     *     
+     */
+    public String getDescription() {
+        return description;
+    }
+
+    /**
+     * Sets the value of the description property.
+     * 
+     * @param value
+     *     allowed object is
+     *     {@link String }
+     *     
+     */
+    public void setDescription(String value) {
+        this.description = value;
+    }
+
+}


[3/3] incubator-taverna-server git commit: Javadoc improvements for usagerecord

Posted by st...@apache.org.
Javadoc improvements for usagerecord


Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/commit/7f145e24
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/tree/7f145e24
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/diff/7f145e24

Branch: refs/heads/master
Commit: 7f145e245319d7dca3f5527d93b669e5906308d7
Parents: ccbf9ef
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Thu Jan 4 11:27:26 2018 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Thu Jan 4 11:27:26 2018 +0000

----------------------------------------------------------------------
 .../server/usagerecord/JobUsageRecord.java      | 25 +++++++++-
 .../server/usagerecord/package-info.java        | 39 ++++++++++++++++
 .../usagerecord/xml/urf/JobUsageRecord.java     |  7 ++-
 .../usagerecord/xml/urf/package-info.java       | 49 ++++++++++++++++++++
 4 files changed, 117 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/7f145e24/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/JobUsageRecord.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/JobUsageRecord.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/JobUsageRecord.java
index 1dba104..7b2e66f 100644
--- a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/JobUsageRecord.java
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/JobUsageRecord.java
@@ -43,6 +43,7 @@ import org.apache.taverna.server.usagerecord.xml.urf.MachineName;
 import org.apache.taverna.server.usagerecord.xml.urf.Memory;
 import org.apache.taverna.server.usagerecord.xml.urf.Network;
 import org.apache.taverna.server.usagerecord.xml.urf.NodeCount;
+import org.apache.taverna.server.usagerecord.xml.urf.ObjectFactory;
 import org.apache.taverna.server.usagerecord.xml.urf.Processors;
 import org.apache.taverna.server.usagerecord.xml.urf.ProjectName;
 import org.apache.taverna.server.usagerecord.xml.urf.Queue;
@@ -60,6 +61,28 @@ import org.apache.taverna.server.usagerecord.xml.urf.UserIdentity;
 import org.apache.taverna.server.usagerecord.xml.urf.WallDuration;
 import org.w3c.dom.Element;
 
+/**
+ * Open Grid Forum GFD.98 Usage Record
+ * <p>
+ * JAXB bean for a a <em>Usage Record</em> as described by Open Grid Forum's
+ * specification <a href="https://www.ogf.org/documents/GFD.98.pdf">GFD.98</a>
+ * serialized in the namespace <code>http://schema.ogf.org/urf/2003/09/urf</code>
+ * <p>
+ * This class represents the outer <code>&lt;UsageRecord&gt;</code> element
+ * which can be serialized with {@link #marshal()} and deserialized with
+ * {@link #unmarshal(String)}). This class also provides convenience methods to
+ * set the usage record properties like {@link #setJobName(String)},
+ * {@link #addUser(String, String)} or {@link #addProcessors(int)}.
+ * <p>
+ * The underlying JAXB elements and types of the usage records are covered by
+ * the package {@link org.apache.taverna.server.usagerecord.xml.urf}, see its
+ * {@link ObjectFactory} for more.
+ * <p>
+ * This class should not be confused with the plain JAXB bean
+ * {@link org.apache.taverna.server.usagerecord.xml.urf.JobUsageRecord}.
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf">GFD.98</a>
+ */
 @XmlRootElement(name = "UsageRecord", namespace = "http://schema.ogf.org/urf/2003/09/urf")
 public class JobUsageRecord extends UsageRecordType {
 	private static JAXBContext context;
@@ -100,7 +123,7 @@ public class JobUsageRecord extends UsageRecordType {
 	}
 
 	/**
-	 * Create a new usage record with a random UUID as its identity.
+	 * Create a new usage record with the given name and a random UUID as its identity.
 	 * 
 	 * @param name
 	 *            The name of the job to which this record pertains.

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/7f145e24/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/package-info.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/package-info.java
new file mode 100644
index 0000000..55b378f
--- /dev/null
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/package-info.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * Open Grid Forum GFD.98 Usage Record
+ * <p>
+ * JAXB bean for a a <em>Usage Record</em> as described by Open Grid Forum's
+ * specification <a href="https://www.ogf.org/documents/GFD.98.pdf">GFD.98</a>.
+ * <p>
+ * The main class {@link org.apache.taverna.server.usagerecord.JobUsageRecord} 
+ * represents the outer <code>&lt;UsageRecord&gt;</code> element
+ * with convenience methods for setting its properties.
+ * <p>
+ * The underlying JAXB elements and types are covered by
+ * the packages {@link org.apache.taverna.server.usagerecord.xml.urf} representing
+ * the namespace <code>http://schema.ogf.org/urf/2003/09/urf</code> and  
+ * {@link org.apache.taverna.server.usagerecord.xml.dsig} representing
+ * the namespace <code>http://www.w3.org/2000/09/xmldsig#</code>
+ * 
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf">Open Grid Forum specification GFD.98 (Usage Record)</a>
+ * @see <a href="https://www.w3.org/TR/xmldsig-core1/">W3C Recommendation XML Signature Syntax and Processing Version 1.1</a> 
+ */
+@javax.xml.bind.annotation.XmlSchema(namespace = "http://schema.ogf.org/urf/2003/09/urf", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
+package org.apache.taverna.server.usagerecord;
+
+import org.apache.taverna.server.usagerecord.xml.urf.ObjectFactory;

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/7f145e24/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
index 282f1d3..aed8a50 100644
--- a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/JobUsageRecord.java
@@ -22,6 +22,11 @@ import javax.xml.bind.annotation.XmlType;
 
 /**
  * Open Grid Forum GFD.98 Usage Record type <code>JobUsageRecord</code>
+ * <p>
+ * For constructing <code>JobUsageRecord</code>s it is recommended to use the
+ * convenience class
+ * {@link org.apache.taverna.server.usagerecord.JobUsageRecord} 
+ * instead of this class.
  * 
  * @see org.apache.taverna.server.usagerecord.JobUsageRecord
  * @see <a href="https://www.ogf.org/documents/GFD.98.pdf#page=18">GFD.98 section 8.2</a>
@@ -32,6 +37,4 @@ import javax.xml.bind.annotation.XmlType;
 public class JobUsageRecord
     extends UsageRecordType
 {
-
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-server/blob/7f145e24/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
----------------------------------------------------------------------
diff --git a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
index d080d1e..e1ed404 100644
--- a/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
+++ b/taverna-server-usagerecord/src/main/java/org/apache/taverna/server/usagerecord/xml/urf/package-info.java
@@ -14,5 +14,54 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+/**
+ * Open Grid Forum GFD.98 Usage Record Format JAXB elements.
+ * <p>
+ * JAXB beans for the <em>Usage Record Format</em> as described by 
+ * <a href="Open Grid Forum">https://www.ogf.org/</a> (OGF)
+ * specification <a href="https://www.ogf.org/documents/GFD.98.pdf">GFD.98</a>
+ * serialized in the namespace
+ * <code>http://schema.ogf.org/urf/2003/09/urf</code>
+ * <p>
+ * This package provides the underlying JAXB elements and types for marshalling
+ * and unmarshalling XML according to the Usage Record Format. 
+ * <p>
+ * For constructing <code>JobUsageRecord</code>s it is recommended to use the
+ * convenience class
+ * {@link org.apache.taverna.server.usagerecord.JobUsageRecord} 
+ * instead of this package.
+ * <p>
+ * The classes in this package are derived from the XML schema <a href=
+ * "http://schemas.ogf.org/urf/2003/09/url.xml">http://schemas.ogf.org/urf/2003/09/url.xml</a>
+ * <!-- NOTE: typo "url" instead of "urf" upstream -->
+ * <p>
+ * <blockquote> Usage Record Working Group XML Schema definition (GFD.98)
+ * <p>
+ * Copyright (C) Open Grid Forum (2006-2007). All Rights Reserved.
+ * <p>
+ * This document and translations of it may be copied and furnished to others,
+ * and derivative works that comment on or otherwise explain it or assist in its
+ * implementation may be prepared, copied, published and distributed, in whole
+ * or in part, without restriction of any kind, provided that the above
+ * copyright notice and this paragraph are included on all such copies and
+ * derivative works. However, this document itself may not be modified in any
+ * way, such as by removing the copyright notice or references to the OGF or
+ * other organizations, except as needed for the purpose of developing Grid
+ * Recommendations in which case the procedures for copyrights defined in the
+ * OGF Document process must be followed, or as required to translate it into
+ * languages other than English.
+ * <p>
+ * The limited permissions granted above are perpetual and will not be revoked
+ * by the OGF or its successors or assignees.
+ * <p>
+ * This document and the information contained herein is provided on an "As Is"
+ * basis and the OGF disclaims all warranties, express or implied, including but
+ * not limited to any warranty that the use of the information herein will not
+ * infringe any rights or any implied warranties of merchantability or fitness
+ * for a particular purpose. </blockquote>
+ * 
+ * @see org.apache.taverna.server.usagerecord.xml.urf.ObjectFactory
+ * @see <a href="https://www.ogf.org/documents/GFD.98.pdf">GFD.98</a>
+ */
 @javax.xml.bind.annotation.XmlSchema(namespace = "http://schema.ogf.org/urf/2003/09/urf", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
 package org.apache.taverna.server.usagerecord.xml.urf;