<?xml version="1.0" encoding="UTF-8"?>
<!--
  xmldsig-properties-schema.rnc
  
  This schema is expected to be used together with xmldsig-core-schema.rnc.
  
  This schema allows Profile, Role, Identifier, Created, Expires,
  and ReplayProject elements as children of SignatureProperty
  elements.
-->
<grammar ns="http://www.w3.org/2009/xmldsig-properties" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <define name="ds_SignaturePropertyChild" combine="choice">
    <choice>
      <ref name="dsp_Profile"/>
      <ref name="dsp_Role"/>
      <ref name="dsp_Identifier"/>
      <ref name="dsp_Created"/>
      <ref name="dsp_Expires"/>
      <ref name="dsp_ReplayProtect"/>
    </choice>
  </define>
  <define name="dsp_Profile">
    <element name="Profile">
      <ref name="dsp_ProfileType"/>
    </element>
  </define>
  <define name="dsp_ProfileType">
    <optional>
      <attribute name="URI">
        <data type="anyURI"/>
      </attribute>
    </optional>
  </define>
  <define name="dsp_Role">
    <element name="Role">
      <ref name="dsp_RoleType"/>
    </element>
  </define>
  <define name="dsp_RoleType">
    <optional>
      <attribute name="URI">
        <data type="anyURI"/>
      </attribute>
    </optional>
  </define>
  <define name="dsp_Identifier">
    <element name="Identifier">
      <data type="string"/>
    </element>
  </define>
  <define name="dsp_Created">
    <element name="Created">
      <data type="dateTime"/>
    </element>
  </define>
  <define name="dsp_Expires">
    <element name="Expires">
      <data type="dateTime"/>
    </element>
  </define>
  <define name="dsp_ReplayProtect">
    <element name="ReplayProtect">
      <ref name="dsp_ReplayProtectType"/>
    </element>
  </define>
  <define name="dsp_ReplayProtectType">
    <element name="timestamp">
      <data type="dateTime"/>
    </element>
    <element name="nonce">
      <ref name="dsp_NonceValueType"/>
    </element>
  </define>
  <define name="dsp_NonceValueType">
    <optional>
      <attribute name="EncodingType">
        <data type="anyURI"/>
      </attribute>
    </optional>
    <data type="string"/>
  </define>
</grammar>
