1 /* 2 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3 */ 4 /* 5 * $Id: SignatureProperties.java,v 1.4 2005/05/10 16:03:46 mullan Exp $ 6 */ 7 package javax.xml.crypto.dsig; 8 9 import javax.xml.crypto.XMLStructure; 10 import java.util.List; 11 12 /** 13 * A representation of the XML <code>SignatureProperties</code> element as 14 * defined in the <a HREF="http://www.w3.org/TR/xmldsig-core/"> 15 * W3C Recommendation for XML-Signature Syntax and Processing</a>. 16 * The XML Schema Definition is defined as: 17 * <pre><code> 18 *<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 19 * <complexType name="SignaturePropertiesType"> 20 * <sequence> 21 * <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 22 * </sequence> 23 * <attribute name="Id" type="ID" use="optional"/> 24 * </complexType> 25 * </code></pre> 26 * 27 * A <code>SignatureProperties</code> instance may be created by invoking the 28 * {@link XMLSignatureFactory#newSignatureProperties newSignatureProperties} 29 * method of the {@link XMLSignatureFactory} class; for example: 30 * 31 * <pre> 32 * XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM"); 33 * SignatureProperties properties = 34 * factory.newSignatureProperties(props, "signature-properties-1"); 35 * </pre> 36 * 37 * @author Sean Mullan 38 * @author JSR 105 Expert Group 39 * @since 1.6 40 * @see XMLSignatureFactory#newSignatureProperties(List, String) 41 * @see SignatureProperty 42 */ 43 public interface SignatureProperties extends XMLStructure { 44 45 /** 46 * URI that identifies the <code>SignatureProperties</code> element (this 47 * can be specified as the value of the <code>type</code> parameter of the 48 * {@link Reference} class to identify the referent's type). 49 */ 50 final static String TYPE = 51 "http://www.w3.org/2000/09/xmldsig#SignatureProperties"; 52 53 /** 54 * Returns the Id of this <code>SignatureProperties</code>. 55 * 56 * @return the Id of this <code>SignatureProperties</code> (or 57 * <code>null</code> if not specified) 58 */ 59 String getId(); 60 61 /** 62 * Returns an {@link java.util.Collections#unmodifiableList unmodifiable 63 * list} of one or more {@link SignatureProperty}s that are contained in 64 * this <code>SignatureProperties</code>. 65 * 66 * @return an unmodifiable list of one or more 67 * <code>SignatureProperty</code>s 68 */ 69 List getProperties(); 70 } 71