1 /* 2 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 3 */ 4 /* 5 * $Id: Manifest.java,v 1.7 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>Manifest</code> element as defined in 14 * 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="Manifest" type="ds:ManifestType"/> 19 * <complexType name="ManifestType"> 20 * <sequence> 21 * <element ref="ds:Reference" maxOccurs="unbounded"/> 22 * </sequence> 23 * <attribute name="Id" type="ID" use="optional"/> 24 * </complexType> 25 * </code></pre> 26 * 27 * A <code>Manifest</code> instance may be created by invoking 28 * one of the {@link XMLSignatureFactory#newManifest newManifest} 29 * methods of the {@link XMLSignatureFactory} class; for example: 30 * 31 * <pre> 32 * XMLSignatureFactory factory = XMLSignatureFactory.getInstance("DOM"); 33 * List references = Collections.singletonList(factory.newReference 34 * ("#reference-1", DigestMethod.SHA1)); 35 * Manifest manifest = factory.newManifest(references, "manifest-1"); 36 * </pre> 37 * 38 * @author Sean Mullan 39 * @author JSR 105 Expert Group 40 * @since 1.6 41 * @see XMLSignatureFactory#newManifest(List) 42 * @see XMLSignatureFactory#newManifest(List, String) 43 */ 44 public interface Manifest extends XMLStructure { 45 46 /** 47 * URI that identifies the <code>Manifest</code> element (this can be 48 * specified as the value of the <code>type</code> parameter of the 49 * {@link Reference} class to identify the referent's type). 50 */ 51 final static String TYPE = "http://www.w3.org/2000/09/xmldsig#Manifest"; 52 53 /** 54 * Returns the Id of this <code>Manifest</code>. 55 * 56 * @return the Id of this <code>Manifest</code> (or <code>null</code> 57 * 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 Reference}s that are contained in this 64 * <code>Manifest</code>. 65 * 66 * @return an unmodifiable list of one or more <code>Reference</code>s 67 */ 68 List getReferences(); 69 } 70