1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.opensaml.xml.encryption.validator;
18
19 import javax.xml.namespace.QName;
20
21 import org.opensaml.xml.XMLObject;
22 import org.opensaml.xml.encryption.EncryptionProperty;
23 import org.opensaml.xml.util.XMLConstants;
24 import org.opensaml.xml.validation.ValidationException;
25 import org.opensaml.xml.validation.Validator;
26
27
28
29
30 public class EncryptionPropertySchemaValidator implements Validator<EncryptionProperty> {
31
32
33 public void validate(EncryptionProperty xmlObject) throws ValidationException {
34 validateUnknownChildren(xmlObject);
35 validateChildrenNamespaces(xmlObject);
36 validateAttributeNamespaces(xmlObject);
37 }
38
39
40
41
42
43
44
45 protected void validateUnknownChildren(EncryptionProperty xmlObject) throws ValidationException {
46 if (xmlObject.getUnknownXMLObjects().isEmpty()) {
47 throw new ValidationException("No children were present in the EncryptionProperty object");
48 }
49 }
50
51
52
53
54
55
56
57 protected void validateChildrenNamespaces(EncryptionProperty xmlObject) throws ValidationException {
58
59 for (XMLObject child : xmlObject.getUnknownXMLObjects()) {
60 QName childName = child.getElementQName();
61 if (XMLConstants.XMLENC_NS.equals(childName.getNamespaceURI())) {
62 throw new ValidationException("EncryptionProperty contains an illegal child extension element: " + childName);
63 }
64 }
65 }
66
67
68
69
70
71
72
73
74 protected void validateAttributeNamespaces(EncryptionProperty xmlObject) throws ValidationException {
75
76 for (QName attribName : xmlObject.getUnknownAttributes().keySet()) {
77 if (! XMLConstants.XML_NS.equals(attribName.getNamespaceURI())) {
78 throw new ValidationException("EncryptionProperty contains an illegal extension attribute: " + attribName);
79 }
80 }
81 }
82
83 }