<?xml version="1.0" encoding="UTF-8"?>
<!--
  xmldsig-properties-schema.rnc (derived from xmldsig-properties-schema.xsd)
  
  Copyright 2011 W3C (Massachusetts Institute of Technology, 
  Institut National de Recherche en Informatique et en Automatique, 
  Keio University). All Rights Reserved.  http://www.w3.org/Consortium/Legal/
  
  Use and distribution of all schemas in this directory are permitted under the terms
  W3C Software Notice and License
  http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
  
  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>
