1/* 2 * Copyright (c) 2005, 2014, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25/* 26 * $Id: SignatureProperties.java,v 1.4 2005/05/10 16:03:46 mullan Exp $ 27 */ 28package javax.xml.crypto.dsig; 29 30import javax.xml.crypto.XMLStructure; 31import java.util.List; 32 33/** 34 * A representation of the XML <code>SignatureProperties</code> element as 35 * defined in the <a href="http://www.w3.org/TR/xmldsig-core/"> 36 * W3C Recommendation for XML-Signature Syntax and Processing</a>. 37 * The XML Schema Definition is defined as: 38 * <pre><code> 39 *<element name="SignatureProperties" type="ds:SignaturePropertiesType"/> 40 * <complexType name="SignaturePropertiesType"> 41 * <sequence> 42 * <element ref="ds:SignatureProperty" maxOccurs="unbounded"/> 43 * </sequence> 44 * <attribute name="Id" type="ID" use="optional"/> 45 * </complexType> 46 * </code></pre> 47 * 48 * A <code>SignatureProperties</code> instance may be created by invoking the 49 * {@link XMLSignatureFactory#newSignatureProperties newSignatureProperties} 50 * method of the {@link XMLSignatureFactory} class; for example: 51 * 52 * <pre> 53 * XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM"); 54 * SignatureProperties properties = 55 * factory.newSignatureProperties(props, "signature-properties-1"); 56 * </pre> 57 * 58 * @author Sean Mullan 59 * @author JSR 105 Expert Group 60 * @since 1.6 61 * @see XMLSignatureFactory#newSignatureProperties(List, String) 62 * @see SignatureProperty 63 */ 64public interface SignatureProperties extends XMLStructure { 65 66 /** 67 * URI that identifies the <code>SignatureProperties</code> element (this 68 * can be specified as the value of the <code>type</code> parameter of the 69 * {@link Reference} class to identify the referent's type). 70 */ 71 final static String TYPE = 72 "http://www.w3.org/2000/09/xmldsig#SignatureProperties"; 73 74 /** 75 * Returns the Id of this <code>SignatureProperties</code>. 76 * 77 * @return the Id of this <code>SignatureProperties</code> (or 78 * <code>null</code> if not specified) 79 */ 80 String getId(); 81 82 /** 83 * Returns an {@link java.util.Collections#unmodifiableList unmodifiable 84 * list} of one or more {@link SignatureProperty}s that are contained in 85 * this <code>SignatureProperties</code>. 86 * 87 * @return an unmodifiable list of one or more 88 * <code>SignatureProperty</code>s 89 */ 90 List<SignatureProperty> getProperties(); 91} 92