public interface KeyInfo
      W3C Recommendation for XML-Signature Syntax and Processing 中定义的 XML KeyInfo 元素的表示形式。KeyInfo 包含 XMLStructure 的列表,其中每一个 XMLStructure 都包含支持接受方获取验证 XML 签名所需的密钥的信息。XML Schema Definition 的定义如下: 
<element name="KeyInfo" type="ds:KeyInfoType"/> <complexType name="KeyInfoType" mixed="true"> <choice maxOccurs="unbounded"> <element ref="ds:KeyName"/> <element ref="ds:KeyValue"/> <element ref="ds:RetrievalMethod"/> <element ref="ds:X509Data"/> <element ref="ds:PGPData"/> <element ref="ds:SPKIData"/> <element ref="ds:MgmtData"/> <any processContents="lax" namespace="##other"/> <!-- (1,1) elements from (0,unbounded) namespaces --> </choice> <attribute name="Id" type="ID" use="optional"/> </complexType>通过调用
KeyInfoFactory 类的 
  newKeyInfo 方法之一,并向其传递一个或多个 
  XMLStructure 列表以及一个可选的 id 参数,可以创建 
  KeyInfo 实例,例如: 
  
KeyInfoFactory factory = KeyInfoFactory.getInstance("DOM");
KeyInfo keyInfo = factory.newKeyInfo
        (Collections.singletonList(factory.newKeyName("Alice"), "keyinfo-1"));
  
  还可以通过调用 marshal 方法将 KeyInfo 对象编组为 XML。 
KeyInfoFactory.newKeyInfo(List), 
    KeyInfoFactory.newKeyInfo(List, String)
   | 方法摘要 | |
|---|---|
  List |  
     getContent() 返回包含密钥信息的 unmodifiable list。 |  
    
  String |  
     getId() 返回此 KeyInfo 的可选 Id 属性,这对于从其他 XML 结构引用此 KeyInfo 可能很有用。 |  
    
  void |  
     marshal(XMLStructure parent, XMLCryptoContext context) 将密钥信息编组为 XML。  |  
    
| 从接口 javax.xml.crypto.XMLStructure 继承的方法 | 
|---|
isFeatureSupported |  
    
| 方法详细信息 | 
|---|
List getContent()
unmodifiable list。列表中的每一项都是一个 
    XMLStructure。 
    如果有一个表示 XMLStructure 类型的公共子类,那么它将作为该类的实例返回(比如:X509Data 元素将作为 X509Data 的实例返回)。 
KeyInfo 中的一个或多个 
      XMLStructure 的不可修改列表。不会返回 
      null 或空列表。
     String getId()
KeyInfo 的可选 Id 属性,这对于从其他 XML 结构引用此 
    KeyInfo 可能很有用。 
    
KeyInfo 的 Id 属性(如果未指定,则返回 
      null)
     void marshal(XMLStructure parent, XMLCryptoContext context) throws MarshalException
parent - 特定于机制的结构,包含将追加已编组密钥信息中的父节点
     context - 包含其他上下文的 
      XMLCryptoContext(如果不适用,则为 null) 
     ClassCastException - 如果 
      parent 或 
      context 的类型与此密钥信息不兼容 
     MarshalException - 如果无法编组密钥信息 
     NullPointerException - 如果 
      parent 为 
      null