1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.saml2.core.impl;
18
19 import java.util.Map.Entry;
20
21 import javax.xml.namespace.QName;
22
23 import org.opensaml.common.impl.AbstractSAMLObjectMarshaller;
24 import org.opensaml.saml2.core.Attribute;
25 import org.opensaml.xml.Configuration;
26 import org.opensaml.xml.XMLObject;
27 import org.opensaml.xml.io.MarshallingException;
28 import org.opensaml.xml.util.XMLHelper;
29 import org.w3c.dom.Attr;
30 import org.w3c.dom.Element;
31
32
33
34
35 public class AttributeMarshaller extends AbstractSAMLObjectMarshaller {
36
37
38 protected void marshallAttributes(XMLObject samlElement, Element domElement) throws MarshallingException {
39 Attribute attribute = (Attribute) samlElement;
40
41 if (attribute.getName() != null) {
42 domElement.setAttributeNS(null, Attribute.NAME_ATTTRIB_NAME, attribute.getName());
43 }
44
45 if (attribute.getNameFormat() != null) {
46 domElement.setAttributeNS(null, Attribute.NAME_FORMAT_ATTRIB_NAME, attribute.getNameFormat());
47 }
48
49 if (attribute.getFriendlyName() != null) {
50 domElement.setAttributeNS(null, Attribute.FRIENDLY_NAME_ATTRIB_NAME, attribute.getFriendlyName());
51 }
52
53 Attr attr;
54 for (Entry<QName, String> entry : attribute.getUnknownAttributes().entrySet()) {
55 attr = XMLHelper.constructAttribute(domElement.getOwnerDocument(), entry.getKey());
56 attr.setValue(entry.getValue());
57 domElement.setAttributeNodeNS(attr);
58 if (Configuration.isIDAttribute(entry.getKey())
59 || attribute.getUnknownAttributes().isIDAttribute(entry.getKey())) {
60 attr.getOwnerElement().setIdAttributeNode(attr, true);
61 }
62 }
63 }
64 }