[java-opensaml] branch main updated: Nullability. Every single public static final in saml-api is now marked @Nonnull

Rod Widdowson rdw at steadingsoftware.com
Sat Feb 4 14:00:31 UTC 2023


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch main
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=d6f0b193117e8dd59fa88eecfbb62f46eb7b81b3

The following commit(s) were added to refs/heads/main by this push:
     new d6f0b1931 Nullability. Every single public static final in saml-api is now marked @Nonnull
d6f0b1931 is described below

commit d6f0b193117e8dd59fa88eecfbb62f46eb7b81b3
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Feb 4 13:59:00 2023 +0000

    Nullability.
    Every single public static final in saml-api is now marked @Nonnull
---
 .../opensaml/saml/common/xml/SAMLConstants.java    | 218 +++++++++++----------
 .../saml/ext/idpdisco/DiscoveryResponse.java       |   5 +-
 .../org/opensaml/saml/ext/saml1md/SourceID.java    |   5 +-
 .../opensaml/saml/ext/saml2aslo/Asynchronous.java  |   9 +-
 .../opensaml/saml/ext/saml2cb/ChannelBindings.java |  13 +-
 .../saml/ext/saml2delrestrict/Delegate.java        |  19 +-
 .../DelegationRestrictionType.java                 |   5 +-
 .../saml/ext/saml2mdquery/ActionNamespace.java     |   5 +-
 .../saml2mdquery/AttributeQueryDescriptorType.java |   5 +-
 .../ext/saml2mdquery/AuthnQueryDescriptorType.java |   5 +-
 .../AuthzDecisionQueryDescriptorType.java          |   5 +-
 .../saml/ext/saml2mdquery/QueryDescriptorType.java |   7 +-
 .../saml/ext/saml2mdreqinit/RequestInitiator.java  |   7 +-
 .../opensaml/saml/ext/saml2mdrpi/Publication.java  |  17 +-
 .../saml/ext/saml2mdrpi/PublicationInfo.java       |  17 +-
 .../saml/ext/saml2mdrpi/PublicationPath.java       |   9 +-
 .../opensaml/saml/ext/saml2mdui/Description.java   |   5 +-
 .../opensaml/saml/ext/saml2mdui/DiscoHints.java    |   9 +-
 .../opensaml/saml/ext/saml2mdui/DisplayName.java   |   3 +-
 .../saml/ext/saml2mdui/InformationURL.java         |   5 +-
 .../org/opensaml/saml/ext/saml2mdui/Keywords.java  |   9 +-
 .../saml/ext/saml2mdui/PrivacyStatementURL.java    |   5 +-
 .../org/opensaml/saml/ext/saml2mdui/UIInfo.java    |   9 +-
 .../java/org/opensaml/saml/ext/samlec/EncType.java |   5 +-
 .../org/opensaml/saml/ext/samlec/GeneratedKey.java |   9 +-
 .../org/opensaml/saml/ext/samlec/SessionKey.java   |  11 +-
 .../opensaml/saml/ext/samlpthrpty/RespondTo.java   |   5 +-
 .../binding/artifact/SAML1ArtifactType0001.java    |   4 +-
 .../binding/artifact/SAML1ArtifactType0002.java    |   4 +-
 .../saml/saml1/core/AttributeStatement.java        |   9 +-
 .../saml1/core/AudienceRestrictionCondition.java   |   9 +-
 .../saml/saml1/core/AuthenticationQuery.java       |  11 +-
 .../saml/saml1/core/AuthenticationStatement.java   |  37 ++--
 .../opensaml/saml/saml1/core/AuthorityBinding.java |  15 +-
 .../saml1/core/AuthorizationDecisionQuery.java     |  11 +-
 .../saml1/core/AuthorizationDecisionStatement.java |  13 +-
 .../org/opensaml/saml/saml1/core/Condition.java    |   9 +-
 .../org/opensaml/saml/saml1/core/Conditions.java   |  17 +-
 .../saml/saml1/core/DoNotCacheCondition.java       |   9 +-
 .../org/opensaml/saml/saml1/core/Evidence.java     |   9 +-
 .../opensaml/saml/saml1/core/NameIdentifier.java   |  21 +-
 .../java/org/opensaml/saml/saml1/core/Query.java   |   9 +-
 .../java/org/opensaml/saml/saml1/core/Request.java |   9 +-
 .../saml/saml1/core/RequestAbstractType.java       |  11 +-
 .../org/opensaml/saml/saml1/core/RespondWith.java  |   5 +-
 .../org/opensaml/saml/saml1/core/Response.java     |   9 +-
 .../saml/saml1/core/ResponseAbstractType.java      |  15 +-
 .../org/opensaml/saml/saml1/core/Statement.java    |   9 +-
 .../java/org/opensaml/saml/saml1/core/Status.java  |   9 +-
 .../org/opensaml/saml/saml1/core/StatusCode.java   |  31 +--
 .../org/opensaml/saml/saml1/core/StatusDetail.java |   9 +-
 .../java/org/opensaml/saml/saml1/core/Subject.java |   9 +-
 .../saml/saml1/core/SubjectConfirmation.java       |   9 +-
 .../opensaml/saml/saml1/core/SubjectLocality.java  |  13 +-
 .../org/opensaml/saml/saml1/core/SubjectQuery.java |   9 +-
 .../opensaml/saml/saml1/core/SubjectStatement.java |   9 +-
 .../SAML2AssertionValidationParameters.java        |  64 +++---
 .../binding/artifact/SAML2ArtifactType0004.java    |   4 +-
 .../java/org/opensaml/saml/saml2/core/Advice.java  |   9 +-
 .../opensaml/saml/saml2/core/ArtifactResolve.java  |   9 +-
 .../opensaml/saml/saml2/core/ArtifactResponse.java |   9 +-
 .../org/opensaml/saml/saml2/core/Assertion.java    |  14 +-
 .../saml/saml2/core/AssertionIDRequest.java        |   5 +-
 .../opensaml/saml/saml2/core/AttributeQuery.java   |   9 +-
 .../saml/saml2/core/AttributeStatement.java        |   9 +-
 .../saml/saml2/core/AudienceRestriction.java       |   9 +-
 .../org/opensaml/saml/saml2/core/AuthnContext.java |  61 +++---
 .../opensaml/saml/saml2/core/AuthnContextDecl.java |   5 +-
 .../org/opensaml/saml/saml2/core/AuthnQuery.java   |  11 +-
 .../org/opensaml/saml/saml2/core/AuthnRequest.java |  23 +--
 .../opensaml/saml/saml2/core/AuthnStatement.java   |  19 +-
 .../saml/saml2/core/AuthzDecisionQuery.java        |  11 +-
 .../saml/saml2/core/AuthzDecisionStatement.java    |  13 +-
 .../java/org/opensaml/saml/saml2/core/BaseID.java  |  13 +-
 .../org/opensaml/saml/saml2/core/Condition.java    |   9 +-
 .../org/opensaml/saml/saml2/core/Conditions.java   |  16 +-
 .../saml/saml2/core/EncryptedAssertion.java        |   5 +-
 .../saml/saml2/core/EncryptedAttribute.java        |   5 +-
 .../saml/saml2/core/EncryptedElementType.java      |   5 +-
 .../org/opensaml/saml/saml2/core/EncryptedID.java  |   5 +-
 .../org/opensaml/saml/saml2/core/Evidence.java     |   9 +-
 .../org/opensaml/saml/saml2/core/Extensions.java   |   9 +-
 .../org/opensaml/saml/saml2/core/IDPEntry.java     |  15 +-
 .../java/org/opensaml/saml/saml2/core/IDPList.java |   9 +-
 .../java/org/opensaml/saml/saml2/core/Issuer.java  |   9 +-
 .../saml2/core/KeyInfoConfirmationDataType.java    |   5 +-
 .../opensaml/saml/saml2/core/LogoutRequest.java    |  23 +--
 .../opensaml/saml/saml2/core/LogoutResponse.java   |  17 +-
 .../saml/saml2/core/ManageNameIDRequest.java       |   9 +-
 .../saml/saml2/core/ManageNameIDResponse.java      |   9 +-
 .../saml/saml2/core/NameIDMappingRequest.java      |   9 +-
 .../saml/saml2/core/NameIDMappingResponse.java     |   9 +-
 .../org/opensaml/saml/saml2/core/NameIDPolicy.java |  15 +-
 .../org/opensaml/saml/saml2/core/NameIDType.java   |  28 +--
 .../opensaml/saml/saml2/core/NewEncryptedID.java   |   5 +-
 .../org/opensaml/saml/saml2/core/OneTimeUse.java   |   9 +-
 .../saml/saml2/core/RequestAbstractType.java       |  31 +--
 .../saml/saml2/core/RequestedAuthnContext.java     |  11 +-
 .../org/opensaml/saml/saml2/core/Response.java     |   9 +-
 .../java/org/opensaml/saml/saml2/core/Scoping.java |  11 +-
 .../org/opensaml/saml/saml2/core/Statement.java    |   9 +-
 .../java/org/opensaml/saml/saml2/core/Status.java  |   9 +-
 .../org/opensaml/saml/saml2/core/StatusCode.java   |  57 +++---
 .../org/opensaml/saml/saml2/core/StatusDetail.java |   9 +-
 .../saml/saml2/core/StatusResponseType.java        |  33 ++--
 .../java/org/opensaml/saml/saml2/core/Subject.java |   9 +-
 .../saml/saml2/core/SubjectConfirmation.java       |  17 +-
 .../saml/saml2/core/SubjectConfirmationData.java   |  23 +--
 .../opensaml/saml/saml2/core/SubjectLocality.java  |  13 +-
 .../org/opensaml/saml/saml2/core/SubjectQuery.java |   9 +-
 .../org/opensaml/saml/saml2/core/Terminate.java    |   9 +-
 .../org/opensaml/saml/saml2/ecp/RelayState.java    |   9 +-
 .../java/org/opensaml/saml/saml2/ecp/Request.java  |  13 +-
 .../saml/saml2/ecp/RequestAuthenticated.java       |   9 +-
 .../java/org/opensaml/saml/saml2/ecp/Response.java |  11 +-
 .../saml/saml2/ecp/SubjectConfirmation.java        |  11 +-
 .../saml/saml2/metadata/AffiliationDescriptor.java |  13 +-
 .../saml2/metadata/ArtifactResolutionService.java  |   5 +-
 .../saml2/metadata/AssertionConsumerService.java   |   5 +-
 .../saml2/metadata/AssertionIDRequestService.java  |   5 +-
 .../metadata/AttributeAuthorityDescriptor.java     |   9 +-
 .../saml/saml2/metadata/AttributeService.java      |   5 +-
 .../saml2/metadata/AuthnAuthorityDescriptor.java   |   9 +-
 .../saml/saml2/metadata/AuthnQueryService.java     |   5 +-
 .../opensaml/saml/saml2/metadata/AuthzService.java |   5 +-
 .../saml/saml2/metadata/ContactPerson.java         |  11 +-
 .../saml/saml2/metadata/EncryptionMethod.java      |   5 +-
 .../org/opensaml/saml/saml2/metadata/Endpoint.java |  15 +-
 .../saml/saml2/metadata/EntitiesDescriptor.java    |  15 +-
 .../saml/saml2/metadata/EntityDescriptor.java      |  15 +-
 .../opensaml/saml/saml2/metadata/Extensions.java   |   9 +-
 .../saml/saml2/metadata/IndexedEndpoint.java       |  13 +-
 .../saml/saml2/metadata/KeyDescriptor.java         |  11 +-
 .../saml/saml2/metadata/ManageNameIDService.java   |   5 +-
 .../saml/saml2/metadata/NameIDMappingService.java  |   5 +-
 .../saml2/metadata/OrganizationDisplayName.java    |   5 +-
 .../saml/saml2/metadata/PDPDescriptor.java         |   9 +-
 .../saml/saml2/metadata/RoleDescriptor.java        |  15 +-
 .../saml/saml2/metadata/SSODescriptor.java         |   9 +-
 .../saml/saml2/metadata/SingleLogoutService.java   |   5 +-
 .../saml/saml2/metadata/SingleSignOnService.java   |   5 +-
 141 files changed, 985 insertions(+), 840 deletions(-)

diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLConstants.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLConstants.java
index 201cfce65..af905f103 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLConstants.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/common/xml/SAMLConstants.java
@@ -17,6 +17,8 @@
 
 package org.opensaml.saml.common.xml;
 
+import javax.annotation.Nonnull;
+
 /** XML related constants used in the SAML specifications. */
 public final class SAMLConstants {
 
@@ -24,346 +26,346 @@ public final class SAMLConstants {
     // HTTP Constants
     // ****************************
     /** HTTP Request Method - POST. */
-    public static final String POST_METHOD = "POST";
+    @Nonnull public static final String POST_METHOD = "POST";
 
     /** HTTP Method - GET. */
-    public static final String GET_METHOD = "GET";
+    @Nonnull public static final String GET_METHOD = "GET";
 
     // ****************************
     // OpenSAML 2
     // ****************************
     /** Directory, on the classpath, schemas are located in. */
-    public static final String SCHEMA_DIR = "/schema/";
+    @Nonnull public static final String SCHEMA_DIR = "/schema/";
 
     // ****************************
     // Core XML
     // ****************************
     /** XML core schema system Id. */
-    public static final String XML_SCHEMA_LOCATION = SCHEMA_DIR + "xml.xsd";
+    @Nonnull public static final String XML_SCHEMA_LOCATION = SCHEMA_DIR + "xml.xsd";
 
     /** XML Schema schema system Id. */
-    public static final String XSD_SCHEMA_LOCATION = SCHEMA_DIR + "XMLSchema.xsd";
+    @Nonnull public static final String XSD_SCHEMA_LOCATION = SCHEMA_DIR + "XMLSchema.xsd";
 
     /** XML Signature schema Id. */
-    public static final String XMLSIG_SCHEMA_LOCATION = SCHEMA_DIR + "xmldsig-core-schema.xsd";
+    @Nonnull public static final String XMLSIG_SCHEMA_LOCATION = SCHEMA_DIR + "xmldsig-core-schema.xsd";
 
     /**  XML Signature 1.1 schema Id. */
-    public static final String XMLSIG11_SCHEMA_LOCATION = SCHEMA_DIR + "xmldsig11-schema.xsd";
+    @Nonnull public static final String XMLSIG11_SCHEMA_LOCATION = SCHEMA_DIR + "xmldsig11-schema.xsd";
     
     /** XML Encryption schema Id. */
-    public static final String XMLENC_SCHEMA_LOCATION = SCHEMA_DIR + "xenc-schema.xsd";
+    @Nonnull public static final String XMLENC_SCHEMA_LOCATION = SCHEMA_DIR + "xenc-schema.xsd";
     
     /** XML Encryption 1.1 schema Id. */
-    public static final String XMLENC11_SCHEMA_LOCATION = SCHEMA_DIR + "xenc11-schema.xsd";
+    @Nonnull public static final String XMLENC11_SCHEMA_LOCATION = SCHEMA_DIR + "xenc11-schema.xsd";
 
     // ****************************
     // SOAP
     // ****************************
     /** SOAP 1.1 schema Id. */
-    public static final String SOAP11ENV_SCHEMA_LOCATION = SCHEMA_DIR + "soap-envelope.xsd";
+    @Nonnull public static final String SOAP11ENV_SCHEMA_LOCATION = SCHEMA_DIR + "soap-envelope.xsd";
 
     /** SOAP 1.1 Envelope XML namespace. */
-    public static final String SOAP11ENV_NS = "http://schemas.xmlsoap.org/soap/envelope/";
+    @Nonnull public static final String SOAP11ENV_NS = "http://schemas.xmlsoap.org/soap/envelope/";
 
     /** SOAP 1.1 Envelope QName prefix. */
-    public static final String SOAP11ENV_PREFIX = "SOAP-ENV";
+    @Nonnull public static final String SOAP11ENV_PREFIX = "SOAP-ENV";
 
     /** Liberty PAOS XML Namespace. */
-    public static final String PAOS_NS = "urn:liberty:paos:2003-08";
+    @Nonnull public static final String PAOS_NS = "urn:liberty:paos:2003-08";
 
     /** Liberty PAOS QName prefix. */
-    public static final String PAOS_PREFIX = "paos";
+    @Nonnull public static final String PAOS_PREFIX = "paos";
 
     // ****************************
     // SAML 1.X
     // ****************************
     /** SAML 1.0 Assertion schema system Id. */
-    public static final String SAML10_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-assertion-1.0.xsd";
+    @Nonnull public static final String SAML10_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-assertion-1.0.xsd";
 
     /** SAML 1.1 Assertion schema system Id. */
-    public static final String SAML11_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-assertion-1.1.xsd";
+    @Nonnull public static final String SAML11_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-assertion-1.1.xsd";
 
     /** SAML 1.X XML namespace. */
-    public static final String SAML1_NS = "urn:oasis:names:tc:SAML:1.0:assertion";
+    @Nonnull public static final String SAML1_NS = "urn:oasis:names:tc:SAML:1.0:assertion";
 
     /** SAML 1.0 Protocol schema system Id. */
-    public static final String SAML10P_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-protocol-1.0.xsd";
+    @Nonnull public static final String SAML10P_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-protocol-1.0.xsd";
 
     /** SAML 1.1 Protocol schema system Id. */
-    public static final String SAML11P_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-protocol-1.1.xsd";
+    @Nonnull public static final String SAML11P_SCHEMA_LOCATION = SCHEMA_DIR + "oasis-sstc-saml-schema-protocol-1.1.xsd";
 
     /** SAML 1.X protocol XML namespace. */
-    public static final String SAML10P_NS = "urn:oasis:names:tc:SAML:1.0:protocol";
+    @Nonnull public static final String SAML10P_NS = "urn:oasis:names:tc:SAML:1.0:protocol";
 
     /** SAML 1.1 protocol XML namespace, used only in SAML 2 metadata protocolSupportEnumeration. */
-    public static final String SAML11P_NS = "urn:oasis:names:tc:SAML:1.1:protocol";
+    @Nonnull public static final String SAML11P_NS = "urn:oasis:names:tc:SAML:1.1:protocol";
 
     /** SAML 1.X Protocol QName prefix. */
-    public static final String SAML1P_PREFIX = "saml1p";
+    @Nonnull public static final String SAML1P_PREFIX = "saml1p";
 
     /** SAML 1.X Assertion QName prefix. */
-    public static final String SAML1_PREFIX = "saml1";
+    @Nonnull public static final String SAML1_PREFIX = "saml1";
 
     /** SAML 1 Metadata extension XML namespace. */
-    public static final String SAML1MD_NS = "urn:oasis:names:tc:SAML:profiles:v1metadata";
+    @Nonnull public static final String SAML1MD_NS = "urn:oasis:names:tc:SAML:profiles:v1metadata";
 
     /** SAML 1 Metadata extension schema system Id. */
-    public static final String SAML1MD_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml1x-metadata.xsd";
+    @Nonnull public static final String SAML1MD_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml1x-metadata.xsd";
 
     /** SAML 1 Metadata extension namespace prefix. */
-    public static final String SAML1MD_PREFIX = "saml1md";
+    @Nonnull public static final String SAML1MD_PREFIX = "saml1md";
 
     /** URI for SAML 1 Artifact binding. */
-    public static final String SAML1_ARTIFACT_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:profiles:artifact-01";
+    @Nonnull public static final String SAML1_ARTIFACT_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:profiles:artifact-01";
 
     /** URI for SAML 1 POST binding. */
-    public static final String SAML1_POST_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:profiles:browser-post";
+    @Nonnull public static final String SAML1_POST_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:profiles:browser-post";
 
     /** URI for SAML 1 SOAP 1.1 binding. */
-    public static final String SAML1_SOAP11_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding";
+    @Nonnull public static final String SAML1_SOAP11_BINDING_URI = "urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding";
 
     // ****************************
     // SAML 2.0
     // ****************************
     /** SAML 2.0 Assertion schema Id. */
-    public static final String SAML20_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-assertion-2.0.xsd";
+    @Nonnull public static final String SAML20_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-assertion-2.0.xsd";
 
     /** "Strict" SAML 2.0 Assertion schema Id. */
-    public static final String STRICT_SAML20_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-assertion-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-assertion-2.1.xsd";
 
     /** SAML 2.0 Assertion XML Namespace. */
-    public static final String SAML20_NS = "urn:oasis:names:tc:SAML:2.0:assertion";
+    @Nonnull public static final String SAML20_NS = "urn:oasis:names:tc:SAML:2.0:assertion";
 
     /** SAML 2.0 Assertion QName prefix. */
-    public static final String SAML20_PREFIX = "saml2";
+    @Nonnull public static final String SAML20_PREFIX = "saml2";
 
     /** SAML 2.0 Protocol schema Id. */
-    public static final String SAML20P_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-protocol-2.0.xsd";
+    @Nonnull public static final String SAML20P_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-protocol-2.0.xsd";
 
     /** "Strict" SAML 2.0 Protocol schema Id. */
-    public static final String STRICT_SAML20P_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-protocol-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20P_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-protocol-2.1.xsd";
 
     /** SAML 2.0 Protocol XML Namespace. */
-    public static final String SAML20P_NS = "urn:oasis:names:tc:SAML:2.0:protocol";
+    @Nonnull public static final String SAML20P_NS = "urn:oasis:names:tc:SAML:2.0:protocol";
 
     /** SAML 2.0 Protocol QName prefix. */
-    public static final String SAML20P_PREFIX = "saml2p";
+    @Nonnull public static final String SAML20P_PREFIX = "saml2p";
 
     /** SAML 2.0 Metadata schema Id. */
-    public static final String SAML20MD_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-metadata-2.0.xsd";
+    @Nonnull public static final String SAML20MD_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-metadata-2.0.xsd";
 
     /** "Strict" SAML 2.0 Metadata schema Id. */
-    public static final String STRICT_SAML20MD_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-metadata-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20MD_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-metadata-2.1.xsd";
 
     /** SAML 2.0 Metadata XML Namespace. */
-    public static final String SAML20MD_NS = "urn:oasis:names:tc:SAML:2.0:metadata";
+    @Nonnull public static final String SAML20MD_NS = "urn:oasis:names:tc:SAML:2.0:metadata";
     
     /** SAML 2.0 Protocol Third-party extension schema Id. */
-    public static final String SAML20PTHRPTY_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-protocol-ext-thirdparty.xsd";
+    @Nonnull public static final String SAML20PTHRPTY_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-protocol-ext-thirdparty.xsd";
 
     /** SAML 2.0 Protocol Third-party extension XML Namespace. */
-    public static final String SAML20PTHRPTY_NS = "urn:oasis:names:tc:SAML:protocol:ext:third-party";
+    @Nonnull public static final String SAML20PTHRPTY_NS = "urn:oasis:names:tc:SAML:protocol:ext:third-party";
 
     /** SAML 2.0 Protocol Third-party extension QName prefix. */
-    public static final String SAML20PTHRPTY_PREFIX = "thrpty";
+    @Nonnull public static final String SAML20PTHRPTY_PREFIX = "thrpty";
 
     /** SAML 2.0 Protocol Async Logout extension schema Id. */
-    public static final String SAML20PASLO_SCHEMA_LOCATION = SCHEMA_DIR + "saml-async-slo-v1.0.xsd";
+    @Nonnull public static final String SAML20PASLO_SCHEMA_LOCATION = SCHEMA_DIR + "saml-async-slo-v1.0.xsd";
     
     /** SAML 2.0 Protocol Async Logout extension XML Namespace. */
-    public static final String SAML20PASLO_NS = "urn:oasis:names:tc:SAML:2.0:protocol:ext:async-slo";
+    @Nonnull public static final String SAML20PASLO_NS = "urn:oasis:names:tc:SAML:2.0:protocol:ext:async-slo";
     
     /** SAML 2.0 Protocol Async Logout extension QName prefix. */
-    public static final String SAML20PASLO_PREFIX ="aslo";
+    @Nonnull public static final String SAML20PASLO_PREFIX ="aslo";
     
     /** SAML SAML V2.0 "Protocol Extension For Requesting Attributes Per Request" namespace. */
-    public static final String SAML20PREQ_ATTR_NS = "urn:oasis:names:tc:SAML:protocol:ext:req-attr";
+    @Nonnull public static final String SAML20PREQ_ATTR_NS = "urn:oasis:names:tc:SAML:protocol:ext:req-attr";
 
     /** SAML SAML V2.0 "Protocol Extension For Requesting Attributes Per Request" prefix. */
-    public static final String SAML20PREQ_ATTRR_PREFIX = "req-attr";
+    @Nonnull public static final String SAML20PREQ_ATTRR_PREFIX = "req-attr";
 
     /** SAML 2.0 Standalone Query Metadata extension XML namespace. */
-    public static final String SAML20MDQUERY_NS = "urn:oasis:names:tc:SAML:metadata:ext:query";
+    @Nonnull public static final String SAML20MDQUERY_NS = "urn:oasis:names:tc:SAML:metadata:ext:query";
 
     /** SAML 2.0 Standalone Query Metadata extension schema system Id. */
-    public static final String SAML20MDQUERY_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-ext-query.xsd";
+    @Nonnull public static final String SAML20MDQUERY_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-ext-query.xsd";
 
     /** "Strict" SAML 2.0 Standalone Query Metadata extension schema system Id. */
-    public static final String STRICT_SAML20MDQUERY_SCHEMA_LOCATION =
+    @Nonnull public static final String STRICT_SAML20MDQUERY_SCHEMA_LOCATION =
             SCHEMA_DIR + "strict/sstc-saml-metadata-ext-query.xsd";
 
     /** SAML 2.0 Standalone Query Metadata extension prefix. */
-    public static final String SAML20MDQUERY_PREFIX = "query";
+    @Nonnull public static final String SAML20MDQUERY_PREFIX = "query";
 
     /** SAML 2.0 Metadata QName prefix. */
-    public static final String SAML20MD_PREFIX = "md";
+    @Nonnull public static final String SAML20MD_PREFIX = "md";
 
     /** SAML 2.0 Authentication Context schema Id. */
-    public static final String SAML20AC_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-authn-context-2.0.xsd";
+    @Nonnull public static final String SAML20AC_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-authn-context-2.0.xsd";
 
     /** SAML 2.0 Authentication Context XML Namespace. */
-    public static final String SAML20AC_NS = "urn:oasis:names:tc:SAML:2.0:ac";
+    @Nonnull public static final String SAML20AC_NS = "urn:oasis:names:tc:SAML:2.0:ac";
 
     /** SAML 2.0 Authentication Context QName prefix. */
-    public static final String SAML20AC_PREFIX = "ac";
+    @Nonnull public static final String SAML20AC_PREFIX = "ac";
 
     /** SAML 2.0 Enhanced Client/Proxy SSO Profile schema Id. */
-    public static final String SAML20ECP_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-ecp-2.0.xsd";
+    @Nonnull public static final String SAML20ECP_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-ecp-2.0.xsd";
 
     /** "Strict" SAML 2.0 Enhanced Client/Proxy SSO Profile schema Id. */
-    public static final String STRICT_SAML20ECP_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-ecp-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20ECP_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-ecp-2.1.xsd";
 
     /** SAML 2.0 Enhanced Client/Proxy SSO Profile XML Namespace. */
-    public static final String SAML20ECP_NS = "urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp";
+    @Nonnull public static final String SAML20ECP_NS = "urn:oasis:names:tc:SAML:2.0:profiles:SSO:ecp";
 
     /** SAML 2.0 Enhanced Client/Proxy SSO Profile QName prefix. */
-    public static final String SAML20ECP_PREFIX = "ecp";
+    @Nonnull public static final String SAML20ECP_PREFIX = "ecp";
 
     /** SAML 2.0 Condition for Delegation Restriction schema Id. */
-    public static final String SAML20DEL_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-delegation.xsd";
+    @Nonnull public static final String SAML20DEL_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-delegation.xsd";
 
     /** SAML 2.0 Condition for Delegation Restriction XML Namespace. */
-    public static final String SAML20DEL_NS = "urn:oasis:names:tc:SAML:2.0:conditions:delegation";
+    @Nonnull public static final String SAML20DEL_NS = "urn:oasis:names:tc:SAML:2.0:conditions:delegation";
 
     /** SAML 2.0 Condition for Delegation Restriction QName prefix. */
-    public static final String SAML20DEL_PREFIX = "del";
+    @Nonnull public static final String SAML20DEL_PREFIX = "del";
 
     /** SAML 2.0 Metadata Extension for Entity Attributes schema Id. */
-    public static final String SAML20MDATTR_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-metadata-attr.xsd";
+    @Nonnull public static final String SAML20MDATTR_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-metadata-attr.xsd";
 
     /** SAML 2.0 Metadata Extension for Entity Attributes XML Namespace. */
-    public static final String SAML20MDATTR_NS = "urn:oasis:names:tc:SAML:metadata:attribute";
+    @Nonnull public static final String SAML20MDATTR_NS = "urn:oasis:names:tc:SAML:metadata:attribute";
 
     /** SAML 2.0 Metadata Extension for Entity Attributes QName prefix. */
-    public static final String SAML20MDATTR_PREFIX = "mdattr";
+    @Nonnull public static final String SAML20MDATTR_PREFIX = "mdattr";
 
     /** SAML 2.0 Metadata Extension for Discovery and Login UI schema Id. */
-    public static final String SAML20MDUI_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-ui-v1.0.xsd";
+    @Nonnull public static final String SAML20MDUI_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-ui-v1.0.xsd";
 
     /** "Strict" SAML 2.0 Metadata Extension for Discovery and Login UI schema Id. */
-    public static final String STRICT_SAML20MDUI_SCHEMA_LOCATION = SCHEMA_DIR + "strict/sstc-saml-metadata-ui-v1.1.xsd";
+    @Nonnull public static final String STRICT_SAML20MDUI_SCHEMA_LOCATION = SCHEMA_DIR + "strict/sstc-saml-metadata-ui-v1.1.xsd";
 
     /** SAML 2.0 Metadata Extension for Discovery and Login UI XML Namespace. */
-    public static final String SAML20MDUI_NS = "urn:oasis:names:tc:SAML:metadata:ui";
+    @Nonnull public static final String SAML20MDUI_NS = "urn:oasis:names:tc:SAML:metadata:ui";
 
     /** SAML 2.0 Metadata Extension for Discovery and Login UI QName prefix. */
-    public static final String SAML20MDUI_PREFIX = "mdui";
+    @Nonnull public static final String SAML20MDUI_PREFIX = "mdui";
 
     /** SAML 2.0 Metadata Extension for SSO Service Provider Request Initiation Namespace. */
-    public static final String SAML20MDRI_NS = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
+    @Nonnull public static final String SAML20MDRI_NS = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
 
     /** SAML 2.0 Metadata Extension for SSO Service Provider Request Initiation QName prefix. */
-    public static final String SAML20MDRI_PREFIX = "init";
+    @Nonnull public static final String SAML20MDRI_PREFIX = "init";
 
     /** SAML 2.0 Metadata Extension for Registration and Publication Information schema Id. */
-    public static final String SAML20MDRPI_SCHEMA_LOCATION = SCHEMA_DIR + "saml-metadata-rpi-v1.0.xsd";
+    @Nonnull public static final String SAML20MDRPI_SCHEMA_LOCATION = SCHEMA_DIR + "saml-metadata-rpi-v1.0.xsd";
 
     /** "Strict" SAML 2.0 Metadata Extension for Registration and Publication Information schema Id. */
-    public static final String STRICT_SAML20MDRPI_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-metadata-rpi-v1.1.xsd";
+    @Nonnull public static final String STRICT_SAML20MDRPI_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-metadata-rpi-v1.1.xsd";
 
     /** SAML 2.0 Metadata Extension for Registration and Publication Information XML Namespace. */
-    public static final String SAML20MDRPI_NS = "urn:oasis:names:tc:SAML:metadata:rpi";
+    @Nonnull public static final String SAML20MDRPI_NS = "urn:oasis:names:tc:SAML:metadata:rpi";
 
     /** SAML 2.0 Metadata Extension for Registration and Publication Information QName prefix. */
-    public static final String SAML20MDRPI_PREFIX = "mdrpi";
+    @Nonnull public static final String SAML20MDRPI_PREFIX = "mdrpi";
 
     /** SAML 2.0 Channel Binding Extensions schema Id. */
-    public static final String SAML20CB_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-channel-binding-ext-v1.0.xsd";
+    @Nonnull public static final String SAML20CB_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-channel-binding-ext-v1.0.xsd";
 
     /** SAML 2.0 Channel Binding Extensions XML Namespace. */
-    public static final String SAML20CB_NS = "urn:oasis:names:tc:SAML:protocol:ext:channel-binding";
+    @Nonnull public static final String SAML20CB_NS = "urn:oasis:names:tc:SAML:protocol:ext:channel-binding";
 
     /** SAML 2.0 Channel Binding Extensions QName prefix. */
-    public static final String SAML20CB_PREFIX = "cb";
+    @Nonnull public static final String SAML20CB_PREFIX = "cb";
     
     /** SAML 2.0 DCE PAC Attribute Profile schema Id. */
-    public static final String SAML20DCE_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-dce-2.0.xsd";
+    @Nonnull public static final String SAML20DCE_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-dce-2.0.xsd";
 
     /** "Strict" SAML 2.0 DCE PAC Attribute Profile schema Id. */
-    public static final String STRICT_SAML20DCE_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-dce-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20DCE_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-dce-2.1.xsd";
 
     /** SAML 2.0 DCE PAC Attribute Profile XML Namespace. */
-    public static final String SAML20DCE_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE";
+    @Nonnull public static final String SAML20DCE_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:DCE";
 
     /** SAML 2.0 DCE PAC Attribute Profile QName prefix. */
-    public static final String SAML20DCE_PREFIX = "DCE";
+    @Nonnull public static final String SAML20DCE_PREFIX = "DCE";
 
     /** SAML 2.0 X.500 Attribute Profile schema Id. */
-    public static final String SAML20X500_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-x500-2.0.xsd";
+    @Nonnull public static final String SAML20X500_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-x500-2.0.xsd";
 
     /** "Strict" SAML 2.0 X.500 Attribute Profile schema Id. */
-    public static final String STRICT_SAML20X500_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-x500-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20X500_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-x500-2.1.xsd";
 
     /** SAML 2.0 X.500 Attribute Profile XML Namespace. */
-    public static final String SAML20X500_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500";
+    @Nonnull public static final String SAML20X500_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500";
 
     /** SAML 2.0 X.500 Attribute Profile QName prefix. */
-    public static final String SAML20X500_PREFIX = "x500";
+    @Nonnull public static final String SAML20X500_PREFIX = "x500";
 
     /** SAML 2.0 XACML Attribute Profile schema Id. */
-    public static final String SAML20XACML_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-xacml-2.0.xsd";
+    @Nonnull public static final String SAML20XACML_SCHEMA_LOCATION = SCHEMA_DIR + "saml-schema-xacml-2.0.xsd";
 
     /** "Strict" SAML 2.0 XACML Attribute Profile schema Id. */
-    public static final String STRICT_SAML20XACML_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-xacml-2.1.xsd";
+    @Nonnull public static final String STRICT_SAML20XACML_SCHEMA_LOCATION = SCHEMA_DIR + "strict/saml-schema-xacml-2.1.xsd";
 
     /** SAML 2.0 XACML Attribute Profile XML Namespace. */
-    public static final String SAML20XACML_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML";
+    @Nonnull public static final String SAML20XACML_NS = "urn:oasis:names:tc:SAML:2.0:profiles:attribute:XACML";
 
     /** SAML 2.0 XACML Attribute Profile QName prefix. */
-    public static final String SAML20XACML_PREFIX = "xacmlprof";
+    @Nonnull public static final String SAML20XACML_PREFIX = "xacmlprof";
 
     /** SAML Identity Provider Discovery Protocol and Profile XML Schema Id. */
-    public static final String SAML_IDP_DISCO_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-idp-discovery.xsd";
+    @Nonnull public static final String SAML_IDP_DISCO_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-idp-discovery.xsd";
 
     /** SAML Identity Provider Discovery Protocol and Profile XML Namespace. */
-    public static final String SAML_IDP_DISCO_NS = "urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol";
+    @Nonnull public static final String SAML_IDP_DISCO_NS = "urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol";
 
     /** SAML Identity Provider Discovery Protocol and Profile QName prefix. */
-    public static final String SAML_IDP_DISCO_PREFIX = "idpdisco";
+    @Nonnull public static final String SAML_IDP_DISCO_PREFIX = "idpdisco";
     
     /** SAML 2.0 Enhanced Client GSS-API schema Id. */
-    public static final String SAMLEC_GSS_SCHEMA_LOCATION = SCHEMA_DIR + "ietf-kitten-sasl-saml-ec.xsd";
+    @Nonnull public static final String SAMLEC_GSS_SCHEMA_LOCATION = SCHEMA_DIR + "ietf-kitten-sasl-saml-ec.xsd";
     
     /** SAML 2.0 Enhanced Client GSS-API XML Namespace. */
-    public static final String SAMLEC_GSS_NS = "urn:ietf:params:xml:ns:samlec";
+    @Nonnull public static final String SAMLEC_GSS_NS = "urn:ietf:params:xml:ns:samlec";
     
     /** SAML 2.0 Enhanced Client GSS-API QName prefix. */
-    public static final String SAMLEC_GSS_PREFIX = "samlec";
+    @Nonnull public static final String SAMLEC_GSS_PREFIX = "samlec";
     
     /** URI for SAML 2 Artifact binding. */
-    public static final String SAML2_ARTIFACT_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact";
+    @Nonnull public static final String SAML2_ARTIFACT_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact";
 
     /** URI for SAML 2 POST binding. */
-    public static final String SAML2_POST_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST";
+    @Nonnull public static final String SAML2_POST_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST";
 
     /** URI for SAML 2 POST-SimpleSign binding. */
-    public static final String SAML2_POST_SIMPLE_SIGN_BINDING_URI =
+    @Nonnull public static final String SAML2_POST_SIMPLE_SIGN_BINDING_URI =
             "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST-SimpleSign";
 
     /** URI for SAML 2 HTTP redirect binding. */
-    public static final String SAML2_REDIRECT_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect";
+    @Nonnull public static final String SAML2_REDIRECT_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect";
 
     /** URI for SAML 2 SOAP binding. */
-    public static final String SAML2_SOAP11_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:SOAP";
+    @Nonnull public static final String SAML2_SOAP11_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:SOAP";
 
     /** URI for SAML 2 PAOS binding. */
-    public static final String SAML2_PAOS_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:PAOS";
+    @Nonnull public static final String SAML2_PAOS_BINDING_URI = "urn:oasis:names:tc:SAML:2.0:bindings:PAOS";
     
     /** SAML 2.0 Metadata Profile for Algorithm Support schema Id. */
-    public static final String SAML20ALG_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-algsupport-v1.0.xsd";
+    @Nonnull public static final String SAML20ALG_SCHEMA_LOCATION = SCHEMA_DIR + "sstc-saml-metadata-algsupport-v1.0.xsd";
 
     /** "Strict" SAML 2.0 Metadata Profile for Algorithm Support schema Id. */
-    public static final String STRICT_SAML20ALG_SCHEMA_LOCATION =
+    @Nonnull public static final String STRICT_SAML20ALG_SCHEMA_LOCATION =
             SCHEMA_DIR + "strict/sstc-saml-metadata-algsupport-v1.1.xsd";
 
     /** SAML 2.0 Metadata Profile for Algorithm Support Namespace. */
-    public static final String SAML20ALG_NS = "urn:oasis:names:tc:SAML:metadata:algsupport";
+    @Nonnull public static final String SAML20ALG_NS = "urn:oasis:names:tc:SAML:metadata:algsupport";
     
     /** SAML 2.0 Metadata Profile for Algorithm Support QName prefix. */
-    public static final String SAML20ALG_PREFIX = "alg";
+    @Nonnull public static final String SAML20ALG_PREFIX = "alg";
     
     /** URI for SAML 2 binding URL encoding DEFLATE method. */
-    public static final String SAML2_BINDING_URL_ENCODING_DEFLATE_URI = 
+    @Nonnull public static final String SAML2_BINDING_URL_ENCODING_DEFLATE_URI = 
             "urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE";
 
     /** Constructor. */
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
index 6685039d5..60cb96b5b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/idpdisco/DiscoveryResponse.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.idpdisco;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -26,9 +27,9 @@ import org.opensaml.saml.saml2.metadata.IndexedEndpoint;
 public interface DiscoveryResponse extends IndexedEndpoint {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoveryResponse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoveryResponse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML_IDP_DISCO_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML_IDP_DISCO_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
index c2e6ddeda..33b38405b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml1md/SourceID.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml1md;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSString;
@@ -29,9 +30,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SourceID extends SAMLObject, XSString {
     
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SourceID";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SourceID";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1MD_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
index 3c8ebcd07..4585c1e64 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2aslo/Asynchronous.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.ext.saml2aslo;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,16 +33,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Asynchronous extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Asynchronous";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Asynchronous";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20PASLO_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20PASLO_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20PASLO_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AsynchronousType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AsynchronousType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20PASLO_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20PASLO_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20PASLO_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
index d7dadf6d7..8c4f729fd 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2cb/ChannelBindings.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.ext.saml2cb;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBase64Binary;
@@ -36,21 +37,21 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface ChannelBindings extends XSBase64Binary, MustUnderstandBearing, ActorBearing, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ChannelBindings";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ChannelBindings";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20CB_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20CB_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ChannelBindingsType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ChannelBindingsType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20CB_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20CB_PREFIX);
 
     /** Type attribute name. */
-    public static final String TYPE_ATTRIB_NAME = "Type";
+    @Nonnull public static final String TYPE_ATTRIB_NAME = "Type";
 
     /**
      * Get the Type attribute value.
@@ -64,5 +65,5 @@ public interface ChannelBindings extends XSBase64Binary, MustUnderstandBearing,
      * 
      * @param newType the new Type attribute value
      */
-    public void setType(String newType);
+    public void setType(@Nonnull String newType);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
index 835254f3a..dde6887c4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/Delegate.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2delrestrict;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -34,28 +35,28 @@ import org.opensaml.saml.saml2.core.NameID;
 public interface Delegate extends SAMLObject {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Delegate";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Delegate";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "DelegateType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "DelegateType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /** DelegationInstant attribute name. */
-    public static final String DELEGATION_INSTANT_ATTRIB_NAME = "DelegationInstant";
+    @Nonnull public static final String DELEGATION_INSTANT_ATTRIB_NAME = "DelegationInstant";
 
     /** DelegationInstant attribute QName. */
-    public static final QName DELEGATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull public static final QName DELEGATION_INSTANT_ATTRIB_QNAME =
             new QName(null, DELEGATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /** ConfirmationMethod attribute name. */
-    public static final String CONFIRMATION_METHOD_ATTRIB_NAME = "ConfirmationMethod";    
+    @Nonnull public static final String CONFIRMATION_METHOD_ATTRIB_NAME = "ConfirmationMethod";    
 
     /**
      * Gets the BaseID child element of the delegate.
@@ -69,7 +70,7 @@ public interface Delegate extends SAMLObject {
      * 
      * @param newBaseID the base identifier of the delegate
      */
-    public void setBaseID(BaseID newBaseID);
+    public void setBaseID(@Nonnull BaseID newBaseID);
 
     /**
      * Gets the NameID child element of the delegate.
@@ -83,7 +84,7 @@ public interface Delegate extends SAMLObject {
      * 
      * @param newNameID the name identifier of the delegate
      */
-    public void setNameID(NameID newNameID);
+    public void setNameID(@Nonnull NameID newNameID);
 
     /**
      * Gets the EncryptedID child element of the delegate.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
index f4d5d0c15..6e9916171 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2delrestrict/DelegationRestrictionType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2delrestrict;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -30,10 +31,10 @@ import org.opensaml.saml.saml2.core.Condition;
 public interface DelegationRestrictionType extends Condition {
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "DelegationRestrictionType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "DelegationRestrictionType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20DEL_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20DEL_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
index 71e0a736d..f61528ba1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/ActionNamespace.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdquery;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSURI;
@@ -29,9 +30,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ActionNamespace extends XSURI, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ActionNamespace";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ActionNamespace";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDQUERY_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDQUERY_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
index 43cf453ef..d72bbf721 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AttributeQueryDescriptorType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdquery;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -30,10 +31,10 @@ import org.opensaml.saml.saml2.metadata.AttributeConsumingService;
 public interface AttributeQueryDescriptorType extends QueryDescriptorType {
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AttributeQueryDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AttributeQueryDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
index 26e003d13..0c3b2fdeb 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthnQueryDescriptorType.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdquery;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnQueryDescriptorType extends QueryDescriptorType {
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthnQueryDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthnQueryDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
index 2e09be370..b379aa2c4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/AuthzDecisionQueryDescriptorType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdquery;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,10 +30,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthzDecisionQueryDescriptorType extends QueryDescriptorType {
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
index ffeec85f1..79e50c64c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdquery/QueryDescriptorType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdquery;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -32,14 +33,14 @@ import org.opensaml.saml.saml2.metadata.RoleDescriptor;
 public interface QueryDescriptorType extends RoleDescriptor {
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "QueryDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "QueryDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MDQUERY_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MDQUERY_PREFIX);
     
     /** "WantAssertionSigned" attribute's local name. */
-    public static final String WANT_ASSERTIONS_SIGNED_ATTRIB_NAME = "WantAssertionsSigned";
+    @Nonnull public static final String WANT_ASSERTIONS_SIGNED_ATTRIB_NAME = "WantAssertionsSigned";
     
     /**
      * Gets whether assertions to this endpoint should be signed.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
index fd173f18e..a12b8c59d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdreqinit/RequestInitiator.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdreqinit;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -28,13 +29,13 @@ import org.opensaml.saml.saml2.metadata.Endpoint;
 public interface RequestInitiator extends Endpoint {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestInitiator";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestInitiator";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20MDRI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDRI_PREFIX);
     
     /** Per the extension specification, the value of the 'Binding' attribute MUST be set to this fixed value. */
-    public static final String REQUIRED_BINDING_VALUE = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
+    @Nonnull public static final String REQUIRED_BINDING_VALUE = "urn:oasis:names:tc:SAML:profiles:SSO:request-init";
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
index a49c512f2..69e52a0fd 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/Publication.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdrpi;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -35,31 +36,31 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Publication extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Publication";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Publication";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "PublicationType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "PublicationType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** publisher attribute name. */
-    public static String PUBLISHER_ATTRIB_NAME = "publisher";
+    @Nonnull public static String PUBLISHER_ATTRIB_NAME = "publisher";
 
     /** creation attribute name. */
-    public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
+    @Nonnull public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
 
     /** QName of the creation attribute. */
-    public static final QName CREATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull public static final QName CREATION_INSTANT_ATTRIB_QNAME =
             new QName(null, CREATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
     /** publication id attribute name. */
-    public static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
+    @Nonnull public static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
 
     /**
      * Get the publisher.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
index c1366ddae..d4f26baa9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationInfo.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.ext.saml2mdrpi;
 import java.time.Instant;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -36,30 +37,30 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface PublicationInfo extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationInfo";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationInfo";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "PublicationInfoType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "PublicationInfoType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** publisher attribute name. */
-    public static String PUBLISHER_ATTRIB_NAME = "publisher";
+    @Nonnull public static String PUBLISHER_ATTRIB_NAME = "publisher";
 
     /** creation attribute name. */
-    public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
+    @Nonnull public static String CREATION_INSTANT_ATTRIB_NAME = "creationInstant";
 
     /** QName of the creation attribute. */
-    public static final QName CREATION_INSTANT_ATTRIB_QNAME =
+    @Nonnull public static final QName CREATION_INSTANT_ATTRIB_QNAME =
             new QName(null, CREATION_INSTANT_ATTRIB_NAME, XMLConstants.DEFAULT_NS_PREFIX);
     
-    /** publication id attribute name. */
+    @Nonnull /** publication id attribute name. */
     public static String PUBLICATION_ID_ATTRIB_NAME = "publicationId";
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
index f7f931330..451384022 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdrpi/PublicationPath.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdrpi;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -34,17 +35,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface PublicationPath extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationPath";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PublicationPath";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDRPI_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MDRPI_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "PublicationPathType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "PublicationPathType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDRPI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDRPI_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
index cdbb690cc..465ae9391 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Description.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdui;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -36,10 +37,10 @@ import org.opensaml.saml.saml2.metadata.LocalizedName;
 public interface Description extends LocalizedName, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Description";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Description";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDUI_NS, 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MDUI_NS, 
             DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
index b4d2005e1..a47ca3b2e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DiscoHints.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdui;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -35,17 +36,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface DiscoHints extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoHints";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DiscoHints";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "DiscoHintsType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "DiscoHintsType";
            
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** 
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
index 9d8bd412f..79663c80e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/DisplayName.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdui;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -37,7 +38,7 @@ public interface DisplayName extends LocalizedName {
     public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DisplayName";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
index 455721d3b..85a6b4fee 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/InformationURL.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdui;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -35,10 +36,10 @@ import org.opensaml.saml.saml2.metadata.LocalizedURI;
 public interface InformationURL extends LocalizedURI {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "InformationURL";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "InformationURL";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
index 6c67eb246..3a28c34eb 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/Keywords.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdui;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.LangBearing;
@@ -38,17 +39,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Keywords extends SAMLObject, LangBearing  {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Keywords";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Keywords";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "KeywordsType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "KeywordsType";
            
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
index aee922b98..24b3f5bab 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/PrivacyStatementURL.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.saml2mdui;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -35,10 +36,10 @@ import org.opensaml.saml.saml2.metadata.LocalizedURI;
 public interface PrivacyStatementURL extends LocalizedURI {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PrivacyStatementURL";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PrivacyStatementURL";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
index faf802e5c..2fb1a0081 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/saml2mdui/UIInfo.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.saml2mdui;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -36,17 +37,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface UIInfo extends SAMLObject {
 
     /** Name of the element inside the Extensions. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "UIInfo";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "UIInfo";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "UIInfoType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "UIInfoType";
     
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML20MDUI_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20MDUI_PREFIX);
     
     /** 
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
index 4580ddf77..7f782aede 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/EncType.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.ext.samlec;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSString;
@@ -34,10 +35,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface EncType extends XSString, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncType";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncType";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
index 2832ca5c7..2bb24c482 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/GeneratedKey.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.ext.samlec;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBase64Binary;
@@ -36,16 +37,16 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface GeneratedKey extends XSBase64Binary, SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "GeneratedKey";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "GeneratedKey";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "GeneratedKeyType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "GeneratedKeyType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
index 8799fff67..dcc4fc0e5 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlec/SessionKey.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.ext.samlec;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -34,21 +35,21 @@ import org.opensaml.xmlsec.signature.KeyInfo;
 public interface SessionKey extends SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SessionKey";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SessionKey";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SessionKeyType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SessionKeyType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAMLEC_GSS_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAMLEC_GSS_PREFIX);
 
     /** Algorithm attribute name. */
-    public static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
+    @Nonnull public static final String ALGORITHM_ATTRIB_NAME = "Algorithm";
     
     /**
      * Get the session key derivation algorithm.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
index d93e0aa7e..9bbc26377 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/ext/samlpthrpty/RespondTo.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.ext.samlpthrpty;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -29,9 +30,9 @@ import org.opensaml.saml.saml2.core.NameIDType;
 public interface RespondTo extends NameIDType, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondTo";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondTo";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20PTHRPTY_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20PTHRPTY_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0001.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0001.java
index b34e30e77..47bccd298 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0001.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0001.java
@@ -19,6 +19,8 @@ package org.opensaml.saml.saml1.binding.artifact;
 
 import java.util.Arrays;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.saml.common.binding.artifact.SAMLSourceIDArtifact;
 
 /**
@@ -28,7 +30,7 @@ import org.opensaml.saml.common.binding.artifact.SAMLSourceIDArtifact;
 public class SAML1ArtifactType0001 extends AbstractSAML1Artifact implements SAMLSourceIDArtifact {
 
     /** Artifact type code (0x0001). */
-    public static final byte[] TYPE_CODE = { 0, 1 };
+    @Nonnull public static final byte[] TYPE_CODE = { 0, 1 };
 
     /** 20 byte artifact source ID. */
     private byte[] sourceID;
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0002.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0002.java
index 6415d5a12..a8009247f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0002.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/binding/artifact/SAML1ArtifactType0002.java
@@ -19,6 +19,8 @@ package org.opensaml.saml.saml1.binding.artifact;
 
 import java.util.Arrays;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.saml.common.binding.artifact.SAMLSourceLocationArtifact;
 
 import net.shibboleth.shared.primitive.StringSupport;
@@ -30,7 +32,7 @@ import net.shibboleth.shared.primitive.StringSupport;
 public class SAML1ArtifactType0002 extends AbstractSAML1Artifact implements SAMLSourceLocationArtifact {
 
     /** Artifact type code (0x0002). */
-    public static final byte[] TYPE_CODE = { 0, 2 };
+    @Nonnull public static final byte[] TYPE_CODE = { 0, 2 };
 
     /** 20 byte assertion handle. */
     private byte[] assertionHandle;
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
index 60de28b52..50214922a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AttributeStatement.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AttributeStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
index 72db03560..c7cfb90c1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AudienceRestrictionCondition.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AudienceRestrictionCondition extends Condition {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestrictionCondition";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestrictionCondition";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AudienceRestrictionConditionType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AudienceRestrictionConditionType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
index 9b7175d90..f1a4e8c5a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationQuery.java
@@ -20,6 +20,7 @@
  */
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -30,21 +31,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthenticationQuery extends SubjectQuery {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationQuery";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthenticationQueryType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthenticationQueryType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** AuthenticationMethod attribute name. */
-    public static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod"; 
+    @Nonnull public static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod"; 
 
     /**
      * Get AuthenticationMethod attribute.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
index ad09395e9..3b4895ee1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthenticationStatement.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.saml1.core;
 import java.time.Instant;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -32,61 +33,61 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthenticationStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationStatement";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthenticationStatement";
     
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "AuthenticationStatementType"; 
+    @Nonnull static final String TYPE_LOCAL_NAME = "AuthenticationStatementType"; 
         
     /** QName of the XSI type. */
-    static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name of the AuthenticationMethod attribute. */
-    static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod";
+    @Nonnull static final String AUTHENTICATIONMETHOD_ATTRIB_NAME = "AuthenticationMethod";
 
     /** Name of the AuthenticationInstant attribute. */
-    static final String AUTHENTICATIONINSTANT_ATTRIB_NAME = "AuthenticationInstant";
+    @Nonnull static final String AUTHENTICATIONINSTANT_ATTRIB_NAME = "AuthenticationInstant";
 
     /** QName of the AuthenticationInstant attribute. */
-    static final QName AUTHENTICATIONINSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName AUTHENTICATIONINSTANT_ATTRIB_QNAME =
             new QName(null, "AuthenticationInstant", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** URI for Kerberos authentication method. */
-    static final String KERBEROS_AUTHN_METHOD = "urn:ietf:rfc:1510";
+    @Nonnull static final String KERBEROS_AUTHN_METHOD = "urn:ietf:rfc:1510";
     
     /** URI for Hardware Token authentication method. */
-    static final String HARDWARE_TOKEN_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:HardwareToken";
+    @Nonnull static final String HARDWARE_TOKEN_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:HardwareToken";
 
     /** URI for Password authentication method. */
-    static final String PASSWORD_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:password";
+    @Nonnull static final String PASSWORD_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:password";
 
     /** URI for X509 Public Key authentication method. */
-    static final String X509_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:X509-PKI";
+    @Nonnull static final String X509_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:X509-PKI";
 
     /** URI for PGP authentication method. */
-    static final String PGP_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:PGP";
+    @Nonnull static final String PGP_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:PGP";
 
     /** URI for SPKI authentication method. */
-    static final String SPKI_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:SPKI";
+    @Nonnull static final String SPKI_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:SPKI";
 
     /** URI for XKMS authentication method. */
-    static final String XKMS_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:XKMS";
+    @Nonnull static final String XKMS_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:XKMS";
     
     /** URI for XML Digital Signature authentication method. */
-    static final String XML_DSIG_AUTHN_METHOD = "urn:ietf:rfc:3075";
+    @Nonnull static final String XML_DSIG_AUTHN_METHOD = "urn:ietf:rfc:3075";
 
     /** URI for Secure Remote Password authentication method. */
-    static final String SRP_AUTHN_METHOD = "urn:ietf:rfc:2945";
+    @Nonnull static final String SRP_AUTHN_METHOD = "urn:ietf:rfc:2945";
 
     /** URI for SSL/TLS Client authentication method. */
-    static final String TLS_CLIENT_AUTHN_METHOD = "urn:ietf:rfc:2246";
+    @Nonnull static final String TLS_CLIENT_AUTHN_METHOD = "urn:ietf:rfc:2246";
 
     /** URI for unspecified authentication method. */
-    static final String UNSPECIFIED_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:unspecified";    
+    @Nonnull static final String UNSPECIFIED_AUTHN_METHOD = "urn:oasis:names:tc:SAML:1.0:am:unspecified";    
     
     /**
      * Return the contents of the AuthenticationMethod attribute.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
index 62c2dcb8d..bd4ea2d14 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorityBinding.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,27 +33,27 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthorityBinding extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorityBinding";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorityBinding";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthorityBindingType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthorityBindingType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Name for the AuthorityKind attribute.  */
-    public static final String AUTHORITYKIND_ATTRIB_NAME = "AuthorityKind";
+    @Nonnull public static final String AUTHORITYKIND_ATTRIB_NAME = "AuthorityKind";
     
     /** Name for the Location attribute.  */
-    public static final String LOCATION_ATTRIB_NAME = "Location";
+    @Nonnull public static final String LOCATION_ATTRIB_NAME = "Location";
 
     /** Name for the Binding attribute.  */
-    public static final String BINDING_ATTRIB_NAME = "Binding";
+    @Nonnull public static final String BINDING_ATTRIB_NAME = "Binding";
 
     /**
      * Get the type of authority described.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
index 9467a75ce..14627a341 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionQuery.java
@@ -22,6 +22,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -32,21 +33,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthorizationDecisionQuery extends SubjectQuery {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionQuery";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionQueryType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionQueryType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** AuthenticationMethod attribute name. */
-    public static final String RESOURCE_ATTRIB_NAME = "Resource"; 
+    @Nonnull public static final String RESOURCE_ATTRIB_NAME = "Resource"; 
 
     /** 
      * Get Resource attribute.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
index 28ce5db4b..78df05bc7 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/AuthorizationDecisionStatement.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,24 +32,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthorizationDecisionStatement extends SAMLObject, SubjectStatement {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionStatement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthorizationDecisionStatement";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionStatementType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthorizationDecisionStatementType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for Resource attribute. */
-    public static final String RESOURCE_ATTRIB_NAME = "Resource";
+    @Nonnull public static final String RESOURCE_ATTRIB_NAME = "Resource";
     
     /** Name for Decision attribute. */
-    public static final String DECISION_ATTRIB_NAME = "Decision";
+    @Nonnull public static final String DECISION_ATTRIB_NAME = "Decision";
     
     /**
      * Get the resource.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
index d588eb2a7..2473bd474 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Condition.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,16 +33,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Condition extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ConditionAbstractType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ConditionAbstractType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
index d1c120794..a2691179f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Conditions.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.saml1.core;
 import java.time.Instant;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -32,30 +33,30 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Conditions extends SAMLObject {
 
     /** Element name, no namespace. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "Conditions";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "Conditions";
     
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "ConditionsType"; 
+    @Nonnull static final String TYPE_LOCAL_NAME = "ConditionsType"; 
         
     /** QName of the XSI type. */
-    static final QName TYPE_NAME =
+    @Nonnull static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for the NotBefore attribute. */
-    static final String NOTBEFORE_ATTRIB_NAME = "NotBefore";
+    @Nonnull static final String NOTBEFORE_ATTRIB_NAME = "NotBefore";
 
     /** QName for the NotBefore attribute. */
-    static final QName NOTBEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
+    @Nonnull static final QName NOTBEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** Name for the NotOnOrAfter attribute. */
-    static final String NOTONORAFTER_ATTRIB_NAME = "NotOnOrAfter";
+    @Nonnull static final String NOTONORAFTER_ATTRIB_NAME = "NotOnOrAfter";
 
     /** QName for the NotOnOrAfter attribute. */
-    static final QName NOTONORAFTER_ATTRIB_QNAME =
+    @Nonnull static final QName NOTONORAFTER_ATTRIB_QNAME =
             new QName(null, "NotOnOrAfter", XMLConstants.DEFAULT_NS_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
index 647660e05..667289a9a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/DoNotCacheCondition.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface DoNotCacheCondition extends Condition {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DoNotCacheCondition";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "DoNotCacheCondition";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "DoNotCacheConditionType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "DoNotCacheConditionType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
index 760836fb5..59ed0f068 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Evidence.java
@@ -22,6 +22,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -33,17 +34,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Evidence extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EvidenceType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EvidenceType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
index 64c687316..2d2dbd335 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/NameIdentifier.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSString;
@@ -27,36 +28,36 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NameIdentifier extends SAMLObject, XSString {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIdentifier";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIdentifier";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML1_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "NameIdentifierType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "NameIdentifierType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for the attribute which defines Name Qualifier. */
-    public static final String NAMEQUALIFIER_ATTRIB_NAME = "NameQualifier";
+    @Nonnull public static final String NAMEQUALIFIER_ATTRIB_NAME = "NameQualifier";
 
     /** Name for the attribute which defines Name Qualifier. */
-    public static final String FORMAT_ATTRIB_NAME = "Format";
+    @Nonnull public static final String FORMAT_ATTRIB_NAME = "Format";
 
     /** URI for unspecified name format. */
-    public static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
+    @Nonnull public static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
 
     /** URI for email name format. */
-    public static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
+    @Nonnull public static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
 
     /** URI for X509 subject name format. */
-    public static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
+    @Nonnull public static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
 
     /** URI for windows domain qualified name name format. */
-    public static final String WIN_DOMAIN_QUALIFIED =
+    @Nonnull public static final String WIN_DOMAIN_QUALIFIED =
             "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName";
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
index 432f920d4..c0439fd73 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Query.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Query extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Query";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Query";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "QueryAbstractType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "QueryAbstractType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
index ba3438bac..ff398b0b1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Request.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Request extends RequestAbstractType {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RequestType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RequestType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /* 
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
index 30d84977d..e49a9f483 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RequestAbstractType.java
@@ -24,6 +24,7 @@ package org.opensaml.saml.saml1.core;
 import java.time.Instant;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -36,20 +37,20 @@ import org.opensaml.saml.common.SignableSAMLObject;
 public interface RequestAbstractType extends SignableSAMLObject {
 
     /** Name for the attribute which defines the MajorVersion (which must be "1". */
-    static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
+    @Nonnull static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
 
     /** Name for the attribute which defines the MinorVersion. */
-    static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
+    @Nonnull static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
 
     /** Name for the attribute which defines the IssueInstant. */
-    static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
     
     /** QName for the attribute which defines the IssueInstant. */
-    static final QName ISSUEINSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName ISSUEINSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Name for the attribute which defines the Issue Instant. */
-    static final String ID_ATTRIB_NAME = "RequestID";
+    @Nonnull static final String ID_ATTRIB_NAME = "RequestID";
 
     /**
      * Gets the SAML version of this message.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
index 177f353dd..3ab6f9cc4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/RespondWith.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSQName;
@@ -33,9 +34,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface RespondWith extends SAMLObject, XSQName {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondWith";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RespondWith";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
index fe0663eaf..4048faff4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Response.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Response extends ResponseAbstractType {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ResponseAbstractType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ResponseAbstractType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
index 473c0c97c..736412b5c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/ResponseAbstractType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -31,26 +32,26 @@ import org.opensaml.saml.common.SignableSAMLObject;
 public interface ResponseAbstractType extends SignableSAMLObject {
 
     /** Name for the attribute which defines InResponseTo. */
-    static final String INRESPONSETO_ATTRIB_NAME = "InResponseTo";
+    @Nonnull static final String INRESPONSETO_ATTRIB_NAME = "InResponseTo";
 
     /** Name for the attribute which defines the MajorVersion (which must be "1". */
-    static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
+    @Nonnull static final String MAJORVERSION_ATTRIB_NAME = "MajorVersion";
 
     /** Name for the attribute which defines the MinorVersion. */
-    static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
+    @Nonnull static final String MINORVERSION_ATTRIB_NAME = "MinorVersion";
 
     /** Name for the attribute which defines the IssueInstant. */
-    static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull static final String ISSUEINSTANT_ATTRIB_NAME = "IssueInstant";
 
     /** QName for the attribute which defines the IssueInstant. */
-    static final QName ISSUEINSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName ISSUEINSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Name for the attribute which defines the Recipient. */
-    static final String RECIPIENT_ATTRIB_NAME = "Recipient";
+    @Nonnull static final String RECIPIENT_ATTRIB_NAME = "Recipient";
 
     /** Name for the attribute which defines the ResponseID. */
-    static final String ID_ATTRIB_NAME = "ResponseID";
+    @Nonnull static final String ID_ATTRIB_NAME = "ResponseID";
 
     /**
      * Return the InResponseTo (attribute).
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
index c865dbe0a..bf5150ac8 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Statement.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Statement extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatementAbstractType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatementAbstractType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
index 6a1033b2d..e49d6be73 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Status.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,17 +29,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Status extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
index 8425e1dbe..8487539a4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusCode.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,58 +29,58 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface StatusCode extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusCodeType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusCodeType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML1P_PREFIX);
 
     /** Success status value. */
-    public static final QName SUCCESS = new QName(SAMLConstants.SAML10P_NS, "Success", SAMLConstants.SAML1P_PREFIX);
+    @Nonnull public static final QName SUCCESS = new QName(SAMLConstants.SAML10P_NS, "Success", SAMLConstants.SAML1P_PREFIX);
 
     /** VersionMismatch status value. */
-    public static final QName VERSION_MISMATCH = new QName(SAMLConstants.SAML10P_NS, "VersionMismatch",
+    @Nonnull public static final QName VERSION_MISMATCH = new QName(SAMLConstants.SAML10P_NS, "VersionMismatch",
             SAMLConstants.SAML1P_PREFIX);
 
     /** Requester status value. */
-    public static final QName REQUESTER = new QName(SAMLConstants.SAML10P_NS, "Requester", SAMLConstants.SAML1P_PREFIX);
+    @Nonnull public static final QName REQUESTER = new QName(SAMLConstants.SAML10P_NS, "Requester", SAMLConstants.SAML1P_PREFIX);
 
     /** Responder status value. */
-    public static final QName RESPONDER = new QName(SAMLConstants.SAML10P_NS, "Responder", SAMLConstants.SAML1P_PREFIX);
+    @Nonnull public static final QName RESPONDER = new QName(SAMLConstants.SAML10P_NS, "Responder", SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionTooHigh status value. */
-    public static final QName REQUEST_VERSION_TOO_HIGH = new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooHigh",
+    @Nonnull public static final QName REQUEST_VERSION_TOO_HIGH = new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooHigh",
             SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionTooLow status value. */
-    public static final QName REQUEST_VERSION_TOO_LOW = new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooLow",
+    @Nonnull public static final QName REQUEST_VERSION_TOO_LOW = new QName(SAMLConstants.SAML10P_NS, "RequestVersionTooLow",
             SAMLConstants.SAML1P_PREFIX);
 
     /** RequestVersionDepricated status value. */
-    public static final QName REQUEST_VERSION_DEPRECATED = new QName(SAMLConstants.SAML10P_NS,
+    @Nonnull public static final QName REQUEST_VERSION_DEPRECATED = new QName(SAMLConstants.SAML10P_NS,
             "RequestVersionDeprecated", SAMLConstants.SAML1P_PREFIX);
 
     /** TooManyResponses status value. */
-    public static final QName TOO_MANY_RESPONSES = new QName(SAMLConstants.SAML10P_NS, "TooManyResponses",
+    @Nonnull public static final QName TOO_MANY_RESPONSES = new QName(SAMLConstants.SAML10P_NS, "TooManyResponses",
             SAMLConstants.SAML1P_PREFIX);
 
     /** RequestDenied status value. */
-    public static final QName REQUEST_DENIED = new QName(SAMLConstants.SAML10P_NS, "RequestDenied",
+    @Nonnull public static final QName REQUEST_DENIED = new QName(SAMLConstants.SAML10P_NS, "RequestDenied",
             SAMLConstants.SAML1P_PREFIX);
 
     /** ResourceNotRecognized status value. */
-    public static final QName RESOURCE_NOT_RECOGNIZED = new QName(SAMLConstants.SAML10P_NS, "ResourceNotRecognized",
+    @Nonnull public static final QName RESOURCE_NOT_RECOGNIZED = new QName(SAMLConstants.SAML10P_NS, "ResourceNotRecognized",
             SAMLConstants.SAML1P_PREFIX);
 
     /** Name for the attribute which defines the Value. */
-    public static final String VALUE_ATTRIB_NAME = "Value";
+    @Nonnull public static final String VALUE_ATTRIB_NAME = "Value";
 
     /**
      * Gets the value of the status code.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
index 569d3729b..6640fcf02 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/StatusDetail.java
@@ -20,6 +20,7 @@
  */
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.ElementExtensibleXMLObject;
@@ -31,16 +32,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
  */
 public interface StatusDetail extends SAMLObject, ElementExtensibleXMLObject {
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusDetailType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusDetailType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
index 2f90be577..7e9cacd71 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/Subject.java
@@ -20,6 +20,7 @@
  */
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
  */
 public interface Subject extends SAMLObject {
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
index 0b7f2b59a..539f90dc7 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectConfirmation.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml1.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -36,17 +37,17 @@ import org.opensaml.xmlsec.signature.KeyInfo;
 public interface SubjectConfirmation extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
index 7b5cbc81b..50f0c86fe 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectLocality.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,24 +33,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectLocality extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML1_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
 
     /** Name for the IPAddress attribute. */
-    public static final String IPADDRESS_ATTRIB_NAME = "IPAddress";
+    @Nonnull public static final String IPADDRESS_ATTRIB_NAME = "IPAddress";
 
     /** Name for the DNSAddress attribute. */
-    public static final String DNSADDRESS_ATTRIB_NAME = "DNSAddress";
+    @Nonnull public static final String DNSADDRESS_ATTRIB_NAME = "DNSAddress";
 
     /**
      * Gets the IP address of the locality.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
index e8491827e..6eb5aa080 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectQuery.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,17 +28,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectQuery extends Query {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML10P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML10P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
index 7dfc54ef5..8e65ed69d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml1/core/SubjectStatement.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml1.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,17 +29,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectStatement extends SAMLObject, Statement {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectStatement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectStatement";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML1_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectStatementAbstractType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectStatementAbstractType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
             new QName(SAMLConstants.SAML1_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML1_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/assertion/SAML2AssertionValidationParameters.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/assertion/SAML2AssertionValidationParameters.java
index f914d8455..53ac50aae 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/assertion/SAML2AssertionValidationParameters.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/assertion/SAML2AssertionValidationParameters.java
@@ -17,6 +17,8 @@
 
 package org.opensaml.saml.saml2.assertion;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.saml.saml2.core.AuthnStatement;
 import org.opensaml.saml.saml2.core.SubjectLocality;
 
@@ -27,140 +29,140 @@ import org.opensaml.saml.saml2.core.SubjectLocality;
 public final class SAML2AssertionValidationParameters {
 
     /** The standard prefix for all SAML 2 parameters defined in this set. */
-    public static final String STD_PREFIX = "saml2";
+    @Nonnull public static final String STD_PREFIX = "saml2";
     
     /** The standard infix for parameters concerned with subject confirmation. */
-    public static final String SC_INFIX = ".SubjectConfirmation";
+    @Nonnull public static final String SC_INFIX = ".SubjectConfirmation";
     
     /** The standard infix for parameters concerned with conditions evaluation. */
-    public static final String COND_INFIX = ".Conditions";
+    @Nonnull public static final String COND_INFIX = ".Conditions";
     
     /** The standard infix for parameters concerned with statement evaluation. */
-    public static final String STMT_INFIX = ".Statement";
+    @Nonnull public static final String STMT_INFIX = ".Statement";
     
     /**
      * Carries a {@link java.time.Duration} specifying a clock skew value.
      */
-    public static final String CLOCK_SKEW = STD_PREFIX + ".ClockSkew";
+    @Nonnull public static final String CLOCK_SKEW = STD_PREFIX + ".ClockSkew";
 
     /**
      * Carries a {@link java.time.Duration} specifying a lifetime from 'now' for IssueInstant.
      */
-    public static final String LIFETIME = STD_PREFIX + ".Lifetime";
+    @Nonnull public static final String LIFETIME = STD_PREFIX + ".Lifetime";
 
     /**
      * Carries the {@link org.opensaml.saml.saml2.core.SubjectConfirmation} that confirmed the subject.
      */
-    public static final String CONFIRMED_SUBJECT_CONFIRMATION = STD_PREFIX + ".ConfirmedSubjectConfirmation";
+    @Nonnull public static final String CONFIRMED_SUBJECT_CONFIRMATION = STD_PREFIX + ".ConfirmedSubjectConfirmation";
     
     /**
      * Carries a {@link java.util.Set}<code><</code>{@link java.lang.String}<code>></code>
      * whose values are the acceptable 
      * {@link org.opensaml.saml.saml2.core.Issuer} values.
      */
-    public static final String VALID_ISSUERS = STD_PREFIX + ".ValidIssuers";
+    @Nonnull public static final String VALID_ISSUERS = STD_PREFIX + ".ValidIssuers";
 
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether the Assertion is required to be signed.
      */
-    public static final String SIGNATURE_REQUIRED = STD_PREFIX + ".SignatureRequired";
+    @Nonnull public static final String SIGNATURE_REQUIRED = STD_PREFIX + ".SignatureRequired";
 
     /**
      * Carries a {@link net.shibboleth.shared.resolver.CriteriaSet} which will be used as the 
      * input to a {@link org.opensaml.xmlsec.signature.support.SignatureTrustEngine}.
      */
-    public static final String SIGNATURE_VALIDATION_CRITERIA_SET = STD_PREFIX + ".SignatureValidationCriteriaSet";
+    @Nonnull public static final String SIGNATURE_VALIDATION_CRITERIA_SET = STD_PREFIX + ".SignatureValidationCriteriaSet";
 
     /**
      * Carries a {@link org.opensaml.xmlsec.signature.support.SignatureTrustEngine} which will be used
      * to validate the Assertion signature.
      */
-    public static final String SIGNATURE_VALIDATION_TRUST_ENGINE = STD_PREFIX + ".SignatureValidationTrustEngine";
+    @Nonnull public static final String SIGNATURE_VALIDATION_TRUST_ENGINE = STD_PREFIX + ".SignatureValidationTrustEngine";
 
     /**
      * Carries a {@link org.opensaml.xmlsec.signature.support.SignaturePrevalidator} which will be used
      * to pre-validate the Assertion signature.
      * 
      */
-    public static final String SIGNATURE_VALIDATION_PREVALIDATOR = STD_PREFIX + ".SignatureValidationPrevalidator";
+    @Nonnull public static final String SIGNATURE_VALIDATION_PREVALIDATOR = STD_PREFIX + ".SignatureValidationPrevalidator";
 
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} NotBefore is required.
      */
-    public static final String SC_NOT_BEFORE_REQUIRED = STD_PREFIX + SC_INFIX + ".NotBeforeRequired";
+    @Nonnull public static final String SC_NOT_BEFORE_REQUIRED = STD_PREFIX + SC_INFIX + ".NotBeforeRequired";
     
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} NotOnOrAfter is required.
      */
-    public static final String SC_NOT_ON_OR_AFTER_REQUIRED = STD_PREFIX + SC_INFIX + ".NoOnOrAfterRequired";
+    @Nonnull public static final String SC_NOT_ON_OR_AFTER_REQUIRED = STD_PREFIX + SC_INFIX + ".NoOnOrAfterRequired";
     
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} Recipient is required.
      */
-    public static final String SC_RECIPIENT_REQUIRED = STD_PREFIX + SC_INFIX + ".RecipientRequired";
+    @Nonnull public static final String SC_RECIPIENT_REQUIRED = STD_PREFIX + SC_INFIX + ".RecipientRequired";
     
     /**
      * Carries a {@link java.util.Set}<code><</code>{@link java.lang.String}<code>></code>
      * whose values are the acceptable 
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} recipients.
      */
-    public static final String SC_VALID_RECIPIENTS = STD_PREFIX + SC_INFIX + ".ValidRecipients";
+    @Nonnull public static final String SC_VALID_RECIPIENTS = STD_PREFIX + SC_INFIX + ".ValidRecipients";
 
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether the
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} Address is required.
      */
-    public static final String SC_ADDRESS_REQUIRED = STD_PREFIX + SC_INFIX + ".AddressRequired";
+    @Nonnull public static final String SC_ADDRESS_REQUIRED = STD_PREFIX + SC_INFIX + ".AddressRequired";
 
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether the
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} address should be checked.
      */
-    public static final String SC_CHECK_ADDRESS = STD_PREFIX + SC_INFIX + ".CheckAddress";
+    @Nonnull public static final String SC_CHECK_ADDRESS = STD_PREFIX + SC_INFIX + ".CheckAddress";
 
     /**
      * Carries a {@link java.util.Set}<code><</code>{@link java.net.InetAddress}<code>></code>
      * whose values are the acceptable 
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} addresses.
      */
-    public static final String SC_VALID_ADDRESSES = STD_PREFIX + SC_INFIX + ".ValidAddresses";
+    @Nonnull public static final String SC_VALID_ADDRESSES = STD_PREFIX + SC_INFIX + ".ValidAddresses";
     
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} InResponseTo is required.
      */
-    public static final String SC_IN_RESPONSE_TO_REQUIRED = STD_PREFIX + SC_INFIX + ".InResponseToRequired";
+    @Nonnull public static final String SC_IN_RESPONSE_TO_REQUIRED = STD_PREFIX + SC_INFIX + ".InResponseToRequired";
     
     /**
      * Carries a {@link java.lang.String} whose value is the acceptable 
      * {@link org.opensaml.saml.saml2.core.SubjectConfirmationData} InResponseTo.
      */
-    public static final String SC_VALID_IN_RESPONSE_TO = STD_PREFIX + SC_INFIX + ".ValidInResponseTo";
+    @Nonnull public static final String SC_VALID_IN_RESPONSE_TO = STD_PREFIX + SC_INFIX + ".ValidInResponseTo";
     
     /**
      * Carries the {@link java.security.PublicKey} used by the presenter.
      */
-    public static final String SC_HOK_PRESENTER_KEY = STD_PREFIX + SC_INFIX + ".HoK.PresenterKey";
+    @Nonnull public static final String SC_HOK_PRESENTER_KEY = STD_PREFIX + SC_INFIX + ".HoK.PresenterKey";
 
     /**
      * Carries the {@link java.security.cert.X509Certificate} used by the presenter.
      */
-    public static final String SC_HOK_PRESENTER_CERT = STD_PREFIX + SC_INFIX + ".HoK.PresenterCertificate";
+    @Nonnull public static final String SC_HOK_PRESENTER_CERT = STD_PREFIX + SC_INFIX + ".HoK.PresenterCertificate";
 
     /**
      * Carries the {@link org.opensaml.xmlsec.signature.KeyInfo} that successfully confirmed the subject 
      * via holder-of-key subject confirmation.
      */
-    public static final String SC_HOK_CONFIRMED_KEYINFO = STD_PREFIX + SC_INFIX + ".HoK.ConfirmedKeyInfo";
+    @Nonnull public static final String SC_HOK_CONFIRMED_KEYINFO = STD_PREFIX + SC_INFIX + ".HoK.ConfirmedKeyInfo";
 
     /**
      * Carries a {@link java.util.Set}<code><</code>{@link javax.xml.namespace.QName}<code>></code>
      * of required conditions which must be present in the assertion.
      */
-    public static final String COND_REQUIRED_CONDITIONS = STD_PREFIX + COND_INFIX + ".RequiredConditions";
+    @Nonnull public static final String COND_REQUIRED_CONDITIONS = STD_PREFIX + COND_INFIX + ".RequiredConditions";
 
     /**
      * Carries a {@link java.util.Set}<code><</code>{@link java.lang.String}<code>></code>
@@ -168,20 +170,20 @@ public final class SAML2AssertionValidationParameters {
      * {@link org.opensaml.saml.saml2.core.AudienceRestriction} {@link org.opensaml.saml.saml2.core.Audience}
      * values for evaluating the Assertion.
      */
-    public static final String COND_VALID_AUDIENCES = STD_PREFIX + COND_INFIX + ".ValidAudiences";
+    @Nonnull public static final String COND_VALID_AUDIENCES = STD_PREFIX + COND_INFIX + ".ValidAudiences";
 
     /**
      * Carries a {@link java.time.Duration} representing the per-invocation value for the Assertion 
      * replay cache expiration.
      */
-    public static final String COND_ONE_TIME_USE_EXPIRES = STD_PREFIX + COND_INFIX + ".OneTimeUseExpires";
-    
+    @Nonnull public static final String COND_ONE_TIME_USE_EXPIRES = STD_PREFIX + COND_INFIX + ".OneTimeUseExpires";
+
     /**
      * Carries a {@link java.lang.Boolean} flag which indicates whether the
      * Address attribute of the {@link SubjectLocality} of an {@link AuthnStatement}
      * should be checked.
      */
-    public static final String STMT_AUTHN_CHECK_ADDRESS = 
+    @Nonnull public static final String STMT_AUTHN_CHECK_ADDRESS = 
             STD_PREFIX + STMT_INFIX + ".Authn.SubjectLocality.CheckAddress";
 
     /**
@@ -189,14 +191,14 @@ public final class SAML2AssertionValidationParameters {
      * whose values are the acceptable 
      * values for the Address attribute of the {@link SubjectLocality} of an {@link AuthnStatement}.
      */
-    public static final String STMT_AUTHN_VALID_ADDRESSES = 
+    @Nonnull public static final String STMT_AUTHN_VALID_ADDRESSES = 
             STD_PREFIX + STMT_INFIX + ".Authn.SubjectLocality.ValidAddresses";
     
     /**
      * Carries a {@link java.time.Duration} used to evaluate the 
      * allowed value of an AuthnInstant attribute of an {@link AuthnStatement}.
      */
-    public static final String STMT_AUTHN_MAX_TIME = STD_PREFIX + STMT_INFIX + ".Authn.MaxTimeSinceAuthn";
+    @Nonnull public static final String STMT_AUTHN_MAX_TIME = STD_PREFIX + STMT_INFIX + ".Authn.MaxTimeSinceAuthn";
     
     
     /** Constructor. */
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/binding/artifact/SAML2ArtifactType0004.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/binding/artifact/SAML2ArtifactType0004.java
index 7c700f25c..98e8bcf10 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/binding/artifact/SAML2ArtifactType0004.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/binding/artifact/SAML2ArtifactType0004.java
@@ -19,6 +19,8 @@ package org.opensaml.saml.saml2.binding.artifact;
 
 import java.util.Arrays;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.saml.common.binding.artifact.SAMLSourceIDArtifact;
 
 /**
@@ -28,7 +30,7 @@ import org.opensaml.saml.common.binding.artifact.SAMLSourceIDArtifact;
 public class SAML2ArtifactType0004 extends AbstractSAML2Artifact implements SAMLSourceIDArtifact {
 
     /** SAML 2 artifact type code (0x0004). */
-    public static final byte[] TYPE_CODE = { 0, 4 };
+    @Nonnull  public static final byte[] TYPE_CODE = { 0, 4 };
 
     /** 20 byte artifact source ID. */
     private byte[] sourceID;
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Advice.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Advice.java
index d5c164336..a735d81b4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Advice.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Advice.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -31,17 +32,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Advice extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Advice";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Advice";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AdviceType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AdviceType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResolve.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResolve.java
index 692dc736d..acb9a0596 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResolve.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResolve.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,17 +32,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ArtifactResolve extends RequestAbstractType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResolve";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResolve";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ArtifactResolveType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ArtifactResolveType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResponse.java
index 7384ac230..74f121919 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ArtifactResponse.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,17 +33,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ArtifactResponse extends StatusResponseType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResponse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResponse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ArtifactResponseType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ArtifactResponseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Assertion.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Assertion.java
index fc3fbb366..eaac81852 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Assertion.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Assertion.java
@@ -34,31 +34,31 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Assertion extends SignableSAMLObject, Evidentiary {
 
     /** Element local name. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "Assertion";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "Assertion";
 
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "AssertionType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "AssertionType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Version attribute name. */
-    static final String VERSION_ATTRIB_NAME = "Version";
+    @Nonnull static final String VERSION_ATTRIB_NAME = "Version";
 
     /** IssueInstant attribute name. */
-    static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
 
     /** IssueInstant attribute QName. */
     @Nonnull static final QName ISSUEINSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** ID attribute name. */
-    static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull static final String ID_ATTRIB_NAME = "ID";
 
     /**
      * Gets the SAML Version of this assertion.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AssertionIDRequest.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AssertionIDRequest.java
index 2cb4317b0..f26022fd3 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AssertionIDRequest.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AssertionIDRequest.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -33,10 +34,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AssertionIDRequest extends RequestAbstractType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionIDRequest";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionIDRequest";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeQuery.java
index 7de08e862..f26a9c2a4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeQuery.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -33,17 +34,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AttributeQuery extends SubjectQuery {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeQuery";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AttributeQueryType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AttributeQueryType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeStatement.java
index 9dec1dc07..c6908367a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AttributeStatement.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AttributeStatement extends Statement {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeStatement";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AttributeStatementType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AudienceRestriction.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AudienceRestriction.java
index b6047439b..023b6221e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AudienceRestriction.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AudienceRestriction.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AudienceRestriction extends Condition {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestriction";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AudienceRestriction";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AudienceRestrictionType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AudienceRestrictionType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContext.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContext.java
index b12364631..572da6d00 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContext.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContext.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,96 +29,96 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnContext extends SAMLObject {
 
     /** Local Name of AuthnContext. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnContext";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnContext";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthnContextType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthnContextType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** URI for Internet Protocol authentication context. */
-    public static final String IP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol";
+    @Nonnull public static final String IP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol";
 
     /** URI for Internet Protocol Password authentication context. */
-    public static final String IP_PASSWORD_AUTHN_CTX =
+    @Nonnull public static final String IP_PASSWORD_AUTHN_CTX =
             "urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword";
 
     /** URI for Kerberos authentication context. */
-    public static final String KERBEROS_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos";
+    @Nonnull public static final String KERBEROS_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos";
 
     /** URI for Mobile One Factor Unregistered authentication context. */
-    public static final String MOFU_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorUnregistered";
+    @Nonnull public static final String MOFU_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorUnregistered";
 
     /** URI for Mobile Two Factor Unregistered authentication context. */
-    public static final String MTFU_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorUnregistered";
+    @Nonnull public static final String MTFU_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorUnregistered";
 
     /** URI for Mobile One Factor Contract authentication context. */
-    public static final String MOFC_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract";
+    @Nonnull public static final String MOFC_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract";
 
     /** URI for Mobile Two Factor Contract authentication context. */
-    public static final String MTFC_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract";
+    @Nonnull public static final String MTFC_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract";
 
     /** URI for Password authentication context. */
-    public static final String PASSWORD_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password";
+    @Nonnull public static final String PASSWORD_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password";
 
     /** URI for Password Protected Transport authentication context. */
-    public static final String PPT_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport";
+    @Nonnull public static final String PPT_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport";
 
     /** URI for Previous Session authentication context. */
-    public static final String PREVIOUS_SESSION_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession";
+    @Nonnull public static final String PREVIOUS_SESSION_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession";
 
     /** URI for X509 Public Key authentication context. */
-    public static final String X509_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:X509";
+    @Nonnull public static final String X509_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:X509";
 
     /** URI for PGP authentication context. */
-    public static final String PGP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PGP";
+    @Nonnull public static final String PGP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:PGP";
 
     /** URI for SPKI authentication context. */
-    public static final String SPKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI";
+    @Nonnull public static final String SPKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI";
 
     /** URI for XML Digital Signature authentication context. */
-    public static final String XML_DSIG_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig";
+    @Nonnull public static final String XML_DSIG_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig";
 
     /** URI for Smart Card authentication context. */
-    public static final String SMARTCARD_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard";
+    @Nonnull public static final String SMARTCARD_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard";
 
     /** URI for Smart Card PKI authentication context. */
-    public static final String SMARTCARD_PKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI";
+    @Nonnull public static final String SMARTCARD_PKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI";
 
     /** URI for Software PKU authentication context. */
-    public static final String SOFTWARE_PKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI";
+    @Nonnull public static final String SOFTWARE_PKI_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI";
 
     /** URI for Telephony authentication context. */
-    public static final String TELEPHONY_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Telephony";
+    @Nonnull public static final String TELEPHONY_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:Telephony";
 
     /** URI for Nomadic Telephony authentication context. */
-    public static final String NOMAD_TELEPHONY_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:NomadTelephony";
+    @Nonnull public static final String NOMAD_TELEPHONY_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:NomadTelephony";
 
     /** URI for Personalized Telephony authentication context. */
-    public static final String PERSONAL_TELEPHONY_AUTHN_CTX =
+    @Nonnull public static final String PERSONAL_TELEPHONY_AUTHN_CTX =
             "urn:oasis:names:tc:SAML:2.0:ac:classes:PersonalTelephony";
 
     /** URI for Authenticated Telephony authentication context. */
-    public static final String AUTHENTICATED_TELEPHONY_AUTHN_CTX =
+    @Nonnull public static final String AUTHENTICATED_TELEPHONY_AUTHN_CTX =
             "urn:oasis:names:tc:SAML:2.0:ac:classes:AuthenticatedTelephony";
 
     /** URI for Secure Remote Password authentication context. */
-    public static final String SRP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SecureRemotePassword";
+    @Nonnull public static final String SRP_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:SecureRemotePassword";
 
     /** URI for SSL/TLS Client authentication context. */
-    public static final String TLS_CLIENT_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient";
+    @Nonnull public static final String TLS_CLIENT_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient";
 
-    /** URI for Time Synchornized Token authentication context. */
-    public static final String TIME_SYNC_TOKEN_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken";
+    /** URI for Time Synchronized Token authentication context. */
+    @Nonnull public static final String TIME_SYNC_TOKEN_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken";
 
     /** URI for unspecified authentication context. */
-    public static final String UNSPECIFIED_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified";
+    @Nonnull public static final String UNSPECIFIED_AUTHN_CTX = "urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified";
 
     /**
      * Gets the URI identifying the Context Class of this Authentication Context.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContextDecl.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContextDecl.java
index 1fc70dfc6..e6261cf9b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContextDecl.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnContextDecl.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSAny;
@@ -29,9 +30,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnContextDecl extends SAMLObject, XSAny {
 
     /** Local Name of AuthnContextDecl. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnContextDecl";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnContextDecl";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnQuery.java
index 3ade4400b..c43462a28 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnQuery.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,21 +28,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnQuery extends SubjectQuery {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnQuery";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthnQueryType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthnQueryType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** SessionIndex attribute name. */
-    public static final String SESSION_INDEX_ATTRIB_NAME = "SessionIndex";
+    @Nonnull public static final String SESSION_INDEX_ATTRIB_NAME = "SessionIndex";
     
     /**
      * Gets the SessionIndex of this request.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnRequest.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnRequest.java
index f4e39f232..7d50fd512 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnRequest.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnRequest.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -28,39 +29,39 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnRequest extends RequestAbstractType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnRequest";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnRequest";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthnRequestType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthnRequestType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** ForceAuthn attribute name. */
-    public static final String FORCE_AUTHN_ATTRIB_NAME = "ForceAuthn";
+    @Nonnull public static final String FORCE_AUTHN_ATTRIB_NAME = "ForceAuthn";
 
     /** IsPassive attribute name. */
-    public static final String IS_PASSIVE_ATTRIB_NAME = "IsPassive";
+    @Nonnull public static final String IS_PASSIVE_ATTRIB_NAME = "IsPassive";
 
     /** ProtocolBinding attribute name. */
-    public static final String PROTOCOL_BINDING_ATTRIB_NAME = "ProtocolBinding";
+    @Nonnull public static final String PROTOCOL_BINDING_ATTRIB_NAME = "ProtocolBinding";
 
     /** AssertionConsumerServiceIndex attribute name. */
-    public static final String ASSERTION_CONSUMER_SERVICE_INDEX_ATTRIB_NAME = "AssertionConsumerServiceIndex";
+    @Nonnull public static final String ASSERTION_CONSUMER_SERVICE_INDEX_ATTRIB_NAME = "AssertionConsumerServiceIndex";
 
     /** AssertionConsumerServiceURL attribute name. */
-    public static final String ASSERTION_CONSUMER_SERVICE_URL_ATTRIB_NAME = "AssertionConsumerServiceURL";
+    @Nonnull public static final String ASSERTION_CONSUMER_SERVICE_URL_ATTRIB_NAME = "AssertionConsumerServiceURL";
 
     /** AttributeConsumingServiceIndex attribute name. */
-    public static final String ATTRIBUTE_CONSUMING_SERVICE_INDEX_ATTRIB_NAME = "AttributeConsumingServiceIndex";
+    @Nonnull public static final String ATTRIBUTE_CONSUMING_SERVICE_INDEX_ATTRIB_NAME = "AttributeConsumingServiceIndex";
 
     /** ProviderName attribute name. */
-    public static final String PROVIDER_NAME_ATTRIB_NAME = "ProviderName";
+    @Nonnull public static final String PROVIDER_NAME_ATTRIB_NAME = "ProviderName";
 
     /**
      * Gets whether the IdP should force the user to reauthenticate.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnStatement.java
index 82bee0b49..bcf2c5406 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthnStatement.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -30,34 +31,34 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnStatement extends Statement {
 
     /** Element local name. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnStatement";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnStatement";
 
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "AuthnStatementType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "AuthnStatementType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** AuthnInstant attribute name. */
-    static final String AUTHN_INSTANT_ATTRIB_NAME = "AuthnInstant";
+    @Nonnull static final String AUTHN_INSTANT_ATTRIB_NAME = "AuthnInstant";
 
     /** AuthnInstant attribute QName. */
-    static final QName AUTHN_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName AUTHN_INSTANT_ATTRIB_QNAME =
             new QName(null, "AuthnInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** SessionIndex attribute name. */
-    static final String SESSION_INDEX_ATTRIB_NAME = "SessionIndex";
+    @Nonnull static final String SESSION_INDEX_ATTRIB_NAME = "SessionIndex";
 
     /** SessionNoOnOrAfter attribute name. */
-    static final String SESSION_NOT_ON_OR_AFTER_ATTRIB_NAME = "SessionNotOnOrAfter";
+    @Nonnull static final String SESSION_NOT_ON_OR_AFTER_ATTRIB_NAME = "SessionNotOnOrAfter";
 
     /** SessionNotOnOrAfter attribute QName. */
-    static final QName SESSION_NOT_ON_OR_AFTER_ATTRIB_QNAME =
+    @Nonnull static final QName SESSION_NOT_ON_OR_AFTER_ATTRIB_QNAME =
             new QName(null, "SessionNotOnOrAfter", XMLConstants.DEFAULT_NS_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionQuery.java
index 11af9e160..0339bec27 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionQuery.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -33,21 +34,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthzDecisionQuery extends SubjectQuery {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzDecisionQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzDecisionQuery";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthzDecisionQueryType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Resource attribute name. */
-    public static final String RESOURCE_ATTRIB_NAME = "Resource";
+    @Nonnull public static final String RESOURCE_ATTRIB_NAME = "Resource";
 
     /**
      * Gets the Resource attrib value of this query.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionStatement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionStatement.java
index 595e9f63e..eb3cc4bfe 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionStatement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/AuthzDecisionStatement.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,24 +30,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthzDecisionStatement extends Statement {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzDecisionStatement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzDecisionStatement";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthzDecisionStatementType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthzDecisionStatementType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Resource attribute name. */
-    public static final String RESOURCE_ATTRIB_NAME = "Resource";
+    @Nonnull public static final String RESOURCE_ATTRIB_NAME = "Resource";
 
     /** Decision attribute name. */
-    public static final String DECISION_ATTRIB_NAME = "Decision";
+    @Nonnull public static final String DECISION_ATTRIB_NAME = "Decision";
 
     /**
      * Get URI of the resource to which authorization is saught.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/BaseID.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/BaseID.java
index 519c0297c..aef16cd5c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/BaseID.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/BaseID.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,24 +29,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface BaseID extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "BaseID";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "BaseID";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "BaseIDAbstractType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "BaseIDAbstractType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** NameQualifier attribute name. */
-    public static final String NAME_QUALIFIER_ATTRIB_NAME = "NameQualifier";
+    @Nonnull public static final String NAME_QUALIFIER_ATTRIB_NAME = "NameQualifier";
 
     /** SPNameQualifier attribute name. */
-    public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
+    @Nonnull public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
 
     /**
      * Gets the NameQualifier value.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Condition.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Condition.java
index 17f96d1fb..7e979c4b9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Condition.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Condition.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Condition extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Condition";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ConditionAbstractType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ConditionAbstractType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Conditions.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Conditions.java
index 4eb2d4788..8bb839818 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Conditions.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Conditions.java
@@ -33,30 +33,30 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Conditions extends SAMLObject {
 
     /** Element local name. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "Conditions";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "Conditions";
 
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "ConditionsType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "ConditionsType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** NotBefore attribute name. */
-    static final String NOT_BEFORE_ATTRIB_NAME = "NotBefore";
+    @Nonnull static final String NOT_BEFORE_ATTRIB_NAME = "NotBefore";
 
     /** QName for the NotBefore attribute. */
-    static final QName NOT_BEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
+    @Nonnull static final QName NOT_BEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** Name for the NotOnOrAfter attribute. */
-    static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
+    @Nonnull static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
 
     /** QName for the NotOnOrAfter attribute. */
-    static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
+    @Nonnull static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
             new QName(null, "NotOnOrAfter", XMLConstants.DEFAULT_NS_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAssertion.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAssertion.java
index e3d677e8d..20acf2bcd 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAssertion.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAssertion.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,10 +28,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface EncryptedAssertion extends EncryptedElementType, Evidentiary {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedAssertion";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedAssertion";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAttribute.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAttribute.java
index 7726288b5..3a0a864d5 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAttribute.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedAttribute.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,10 +28,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface EncryptedAttribute extends EncryptedElementType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedAttribute";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedAttribute";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =  
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =  
         new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedElementType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedElementType.java
index bde10dd21..d66c337d4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedElementType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedElementType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,10 +33,10 @@ import org.opensaml.xmlsec.encryption.EncryptedKey;
 public interface EncryptedElementType extends SAMLObject {
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EncryptedElementType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EncryptedElementType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedID.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedID.java
index 3589139f6..0277f0848 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedID.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/EncryptedID.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,10 +28,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface EncryptedID extends EncryptedElementType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedID";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptedID";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =  
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =  
         new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Evidence.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Evidence.java
index 5468a0264..c70dab11c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Evidence.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Evidence.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Evidence extends SAMLObject {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Evidence";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EvidenceType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EvidenceType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Extensions.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Extensions.java
index f27c83abd..085290d0c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Extensions.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Extensions.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.ElementExtensibleXMLObject;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Extensions extends SAMLObject, ElementExtensibleXMLObject {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Extensions";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Extensions";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ExtensionsType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ExtensionsType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
     
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPEntry.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPEntry.java
index fd16e7e81..dfd09759a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPEntry.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPEntry.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,27 +29,27 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface IDPEntry extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IDPEntry";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IDPEntry";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "IDPEntryType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "IDPEntryType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** ProviderID attribute name. */
-    public static final String PROVIDER_ID_ATTRIB_NAME = "ProviderID";
+    @Nonnull public static final String PROVIDER_ID_ATTRIB_NAME = "ProviderID";
 
     /** Name attribute name. */
-    public static final String NAME_ATTRIB_NAME = "Name";
+    @Nonnull public static final String NAME_ATTRIB_NAME = "Name";
 
     /** Loc attribute name. */
-    public static final String LOC_ATTRIB_NAME = "Loc";
+    @Nonnull public static final String LOC_ATTRIB_NAME = "Loc";
 
     /**
      * Gets ProviderID URI.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPList.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPList.java
index af795badd..c85ce50ff 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPList.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/IDPList.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -34,17 +35,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface IDPList extends SAMLObject {
 
     /** Element Local Name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IDPList";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IDPList";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "IDPListType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "IDPListType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Issuer.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Issuer.java
index be3151ba5..13bcb7855 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Issuer.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Issuer.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Issuer extends NameIDType, SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Issuer";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Issuer";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "IssuerType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "IssuerType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/KeyInfoConfirmationDataType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/KeyInfoConfirmationDataType.java
index a379876bb..08aa04574 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/KeyInfoConfirmationDataType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/KeyInfoConfirmationDataType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.XMLObject;
@@ -30,10 +31,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface KeyInfoConfirmationDataType extends SubjectConfirmationData {
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "KeyInfoConfirmationDataType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "KeyInfoConfirmationDataType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutRequest.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutRequest.java
index ee4fdc4a9..61f3d07d7 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutRequest.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutRequest.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 import java.time.Instant;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -34,40 +35,40 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface LogoutRequest extends RequestAbstractType {
     
     /** Element local name. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "LogoutRequest";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "LogoutRequest";
     
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "LogoutRequestType"; 
+    @Nonnull static final String TYPE_LOCAL_NAME = "LogoutRequestType"; 
         
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = 
+    @Nonnull static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Reason attribute name. */
-    static final String REASON_ATTRIB_NAME = "Reason";
+    @Nonnull static final String REASON_ATTRIB_NAME = "Reason";
     
     /** NotOnOrAfter attribute name. */
-    static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
+    @Nonnull static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
 
     /** QName for the NotOnOrAfter attribute. */
-    static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
+    @Nonnull static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
             new QName(null, "NotOnOrAfter", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** User-initiated logout reason. */
-    static final String USER_REASON = "urn:oasis:names:tc:SAML:2.0:logout:user";
+    @Nonnull static final String USER_REASON = "urn:oasis:names:tc:SAML:2.0:logout:user";
 
     /** Admin-initiated logout reason. */
-    static final String ADMIN_REASON = "urn:oasis:names:tc:SAML:2.0:logout:admin";
+    @Nonnull static final String ADMIN_REASON = "urn:oasis:names:tc:SAML:2.0:logout:admin";
     
     /** Global timeout logout reason. */
-    static final String GLOBAL_TIMEOUT_REASON = "urn:oasis:names:tc:SAML:2.0:logout:global-timeout";
+    @Nonnull static final String GLOBAL_TIMEOUT_REASON = "urn:oasis:names:tc:SAML:2.0:logout:global-timeout";
     
     /** SP timeout logout reason. */
-    static final String SP_TIMEOUT_REASON = "urn:oasis:names:tc:SAML:2.0:logout:sp-timeout";
+    @Nonnull static final String SP_TIMEOUT_REASON = "urn:oasis:names:tc:SAML:2.0:logout:sp-timeout";
     
     /**
      * Get the Reason attrib value of the request.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutResponse.java
index 01229ef9e..e1a8ea6c5 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/LogoutResponse.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,29 +32,29 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface LogoutResponse extends StatusResponseType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "LogoutResponse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "LogoutResponse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "LogoutResponseType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "LogoutResponseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** URI for User logout reason. */
-    public static final String USER_LOGOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:user";
+    @Nonnull public static final String USER_LOGOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:user";
 
     /** URI for Admin logout reason. */
-    public static final String ADMIN_LOGOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:admin";
+    @Nonnull public static final String ADMIN_LOGOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:admin";
 
     /** URI for global timeout logout reason. */
-    public static final String GLOBAL_TIMEOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:global-timeout";
+    @Nonnull public static final String GLOBAL_TIMEOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:global-timeout";
 
     /** URI for SP timeout logout reason. */
-    public static final String SP_TIMEOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:sp-timeout";
+    @Nonnull public static final String SP_TIMEOUT_URI = "urn:oasis:names:tc:SAML:2.0:logout:sp-timeout";
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDRequest.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDRequest.java
index c7d9aecef..4f0551c5e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDRequest.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDRequest.java
@@ -20,6 +20,7 @@
  */
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,17 +32,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ManageNameIDRequest extends RequestAbstractType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDRequest";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDRequest";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ManageNameIDRequestType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ManageNameIDRequestType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDResponse.java
index b147c3c76..d7698b642 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/ManageNameIDResponse.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,16 +32,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ManageNameIDResponse extends StatusResponseType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDResponse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDResponse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ManageNameIDResponseType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ManageNameIDResponseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingRequest.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingRequest.java
index 00c4873a7..e4b6ee8af 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingRequest.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingRequest.java
@@ -20,6 +20,7 @@
  */
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,17 +32,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NameIDMappingRequest extends RequestAbstractType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingRequest";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingRequest";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "NameIDMappingRequestType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "NameIDMappingRequestType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingResponse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingResponse.java
index 9852f0f4e..6997a9794 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingResponse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDMappingResponse.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,17 +28,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NameIDMappingResponse extends StatusResponseType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingResponse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingResponse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static String TYPE_LOCAL_NAME = "NameIDMappingResponseType";
+    @Nonnull public static String TYPE_LOCAL_NAME = "NameIDMappingResponseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDPolicy.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDPolicy.java
index 1e09a44af..4ca75dc72 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDPolicy.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDPolicy.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -29,27 +30,27 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NameIDPolicy extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDPolicy";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDPolicy";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "NameIDPolicyType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "NameIDPolicyType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Format attribute name. */
-    public static final String FORMAT_ATTRIB_NAME = "Format";
+    @Nonnull public static final String FORMAT_ATTRIB_NAME = "Format";
 
     /** SPNameQualifier attribute name. */
-    public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
+    @Nonnull public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
 
     /** AllowCreate attribute name. */
-    public static final String ALLOW_CREATE_ATTRIB_NAME = "AllowCreate";
+    @Nonnull public static final String ALLOW_CREATE_ATTRIB_NAME = "AllowCreate";
 
     /**
      * Gets the format of the NameIDPolicy.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDType.java
index 92361909b..96b66e27a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NameIDType.java
@@ -17,6 +17,8 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
+
 import org.opensaml.core.xml.schema.XSString;
 
 /**
@@ -25,44 +27,44 @@ import org.opensaml.core.xml.schema.XSString;
 public interface NameIDType extends XSString {
 
     /** NameQualifier attribute name. */
-    public static final String NAME_QUALIFIER_ATTRIB_NAME = "NameQualifier";
+    @Nonnull public static final String NAME_QUALIFIER_ATTRIB_NAME = "NameQualifier";
 
     /** SPNameQualifier attribute name. */
-    public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
+    @Nonnull public static final String SP_NAME_QUALIFIER_ATTRIB_NAME = "SPNameQualifier";
 
     /** Format attribute name. */
-    public static final String FORMAT_ATTRIB_NAME = "Format";
+    @Nonnull public static final String FORMAT_ATTRIB_NAME = "Format";
 
     /** SPProviderID attribute name. */
-    public static final String SPPROVIDED_ID_ATTRIB_NAME = "SPProvidedID";
+    @Nonnull public static final String SPPROVIDED_ID_ATTRIB_NAME = "SPProvidedID";
 
     /** URI for unspecified name format. */
-    public static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
+    @Nonnull public static final String UNSPECIFIED = "urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified";
 
     /** URI for email name format. */
-    public static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
+    @Nonnull public static final String EMAIL = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress";
 
     /** URI for X509 subject name format. */
-    public static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
+    @Nonnull public static final String X509_SUBJECT = "urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName";
 
     /** URI for windows domain qualified name name format. */
-    public static final String WIN_DOMAIN_QUALIFIED =
+    @Nonnull public static final String WIN_DOMAIN_QUALIFIED =
             "urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName";
 
     /** URI for kerberos name format. */
-    public static final String KERBEROS = "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos";
+    @Nonnull public static final String KERBEROS = "urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos";
 
     /** URI for SAML entity name format. */
-    public static final String ENTITY = "urn:oasis:names:tc:SAML:2.0:nameid-format:entity";
+    @Nonnull public static final String ENTITY = "urn:oasis:names:tc:SAML:2.0:nameid-format:entity";
 
     /** URI for persistent name format. */
-    public static final String PERSISTENT = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent";
+    @Nonnull public static final String PERSISTENT = "urn:oasis:names:tc:SAML:2.0:nameid-format:persistent";
 
     /** URI for transient name format. */
-    public static final String TRANSIENT = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient";
+    @Nonnull public static final String TRANSIENT = "urn:oasis:names:tc:SAML:2.0:nameid-format:transient";
 
     /** Special URI used by NameIDPolicy to indicate a NameID should be encrypted. */
-    public static final String ENCRYPTED = "urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted";
+    @Nonnull public static final String ENCRYPTED = "urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted";
 
     /**
      * Gets the NameQualifier value.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NewEncryptedID.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NewEncryptedID.java
index 8edb0f303..14a5b490d 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NewEncryptedID.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/NewEncryptedID.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,10 +28,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NewEncryptedID extends EncryptedElementType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NewEncryptedID";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NewEncryptedID";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/OneTimeUse.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/OneTimeUse.java
index c6bfbb09a..c9313a4e6 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/OneTimeUse.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/OneTimeUse.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface OneTimeUse extends Condition {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "OneTimeUse";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "OneTimeUse";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "OneTimeUseType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "OneTimeUseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestAbstractType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestAbstractType.java
index fc05f25d5..fd6504fb6 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestAbstractType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestAbstractType.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -32,51 +33,51 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface RequestAbstractType extends SignableSAMLObject {
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "RequestAbstractType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "RequestAbstractType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** ID attribute name. */
-    static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull static final String ID_ATTRIB_NAME = "ID";
 
     /** Version attribute name. */
-    static final String VERSION_ATTRIB_NAME = "Version";
+    @Nonnull static final String VERSION_ATTRIB_NAME = "Version";
 
     /** IssueInstant attribute name. */
-    static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
 
     /** QName for the attribute which defines the IssueInstant. */
-    static final QName ISSUE_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName ISSUE_INSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Destination attribute name. */
-    static final String DESTINATION_ATTRIB_NAME = "Destination";
+    @Nonnull static final String DESTINATION_ATTRIB_NAME = "Destination";
 
     /** Consent attribute name. */
-    static final String CONSENT_ATTRIB_NAME = "Consent";
+    @Nonnull static final String CONSENT_ATTRIB_NAME = "Consent";
 
     /** Unspecified consent URI. */
-    static final String UNSPECIFIED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unspecified";
+    @Nonnull static final String UNSPECIFIED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unspecified";
 
     /** Obtained consent URI. */
-    static final String OBTAINED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:obtained";
+    @Nonnull static final String OBTAINED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:obtained";
 
     /** Prior consent URI. */
-    static final String PRIOR_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:prior";
+    @Nonnull static final String PRIOR_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:prior";
 
     /** Implicit consent URI. */
-    static final String IMPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-implicit";
+    @Nonnull static final String IMPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-implicit";
 
     /** Explicit consent URI. */
-    static final String EXPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-explicit";
+    @Nonnull static final String EXPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-explicit";
 
     /** Unavailable consent URI. */
-    static final String UNAVAILABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unavailable";
+    @Nonnull static final String UNAVAILABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unavailable";
 
     /** Inapplicable consent URI. */
-    static final String INAPPLICABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:inapplicable";
+    @Nonnull static final String INAPPLICABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:inapplicable";
 
     /**
      * Gets the SAML Version of this request.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestedAuthnContext.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestedAuthnContext.java
index 99a4f49bf..4d3f30365 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestedAuthnContext.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/RequestedAuthnContext.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -34,21 +35,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface RequestedAuthnContext extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestedAuthnContext";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestedAuthnContext";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RequestedAuthnContextType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RequestedAuthnContextType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** SessionIndex attribute name. */
-    public static final String COMPARISON_ATTRIB_NAME = "Comparison";
+    @Nonnull public static final String COMPARISON_ATTRIB_NAME = "Comparison";
 
     /**
      * Gets the Comparison attribute value of the requested authn context.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Response.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Response.java
index de20bc52b..d7335847f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Response.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Response.java
@@ -22,6 +22,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -32,17 +33,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Response extends StatusResponseType {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ResponseType"; 
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ResponseType"; 
         
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = 
+    @Nonnull public static final QName TYPE_NAME = 
         new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20P_PREFIX);
     
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Scoping.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Scoping.java
index ea47fec13..08f100228 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Scoping.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Scoping.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -34,21 +35,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Scoping extends SAMLObject {
 
     /** Element Local Name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Scoping";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Scoping";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ScopingType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ScopingType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** ProxyCount attribute name. */
-    public static final String PROXY_COUNT_ATTRIB_NAME = "ProxyCount";
+    @Nonnull public static final String PROXY_COUNT_ATTRIB_NAME = "ProxyCount";
 
     /**
      * Gets the ProxyCount attrib value.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Statement.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Statement.java
index 614bfdd80..aeae03a34 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Statement.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Statement.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,16 +29,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Statement extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Statement";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatementAbstractType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatementAbstractType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Status.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Status.java
index 1938d11a4..ec0246aff 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Status.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Status.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,17 +33,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Status extends SAMLObject {
 
     /** Local Name of Status. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Status";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusCode.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusCode.java
index 533f62a81..e26998dfc 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusCode.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusCode.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,91 +33,91 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface StatusCode extends SAMLObject {
 
     /** Local Name of StatusCode. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusCode";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusCodeType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusCodeType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local Name of the Value attribute. */
-    public static final String VALUE_ATTRIB_NAME = "Value";
+    @Nonnull public static final String VALUE_ATTRIB_NAME = "Value";
 
     /** URI for Success status code. */
-    public static final String SUCCESS = "urn:oasis:names:tc:SAML:2.0:status:Success";
+    @Nonnull public static final String SUCCESS = "urn:oasis:names:tc:SAML:2.0:status:Success";
 
     /** URI for Requester status code. */
-    public static final String REQUESTER = "urn:oasis:names:tc:SAML:2.0:status:Requester";
+    @Nonnull public static final String REQUESTER = "urn:oasis:names:tc:SAML:2.0:status:Requester";
 
     /** URI for Responder status code. */
-    public static final String RESPONDER = "urn:oasis:names:tc:SAML:2.0:status:Responder";
+    @Nonnull public static final String RESPONDER = "urn:oasis:names:tc:SAML:2.0:status:Responder";
 
     /** URI for VersionMismatch status code. */
-    public static final String VERSION_MISMATCH = "urn:oasis:names:tc:SAML:2.0:status:VersionMismatch";
+    @Nonnull public static final String VERSION_MISMATCH = "urn:oasis:names:tc:SAML:2.0:status:VersionMismatch";
 
     /** URI for AuthnFailed status code. */
-    public static final String AUTHN_FAILED = "urn:oasis:names:tc:SAML:2.0:status:AuthnFailed";
+    @Nonnull public static final String AUTHN_FAILED = "urn:oasis:names:tc:SAML:2.0:status:AuthnFailed";
 
     /** URI for InvalidAttrNameOrValue status code. */
-    public static final String INVALID_ATTR_NAME_OR_VALUE = "urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue";
+    @Nonnull public static final String INVALID_ATTR_NAME_OR_VALUE = "urn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue";
 
     /** URI for InvalidNameIDPolicy status code. */
-    public static final String INVALID_NAMEID_POLICY = "urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy";
+    @Nonnull public static final String INVALID_NAMEID_POLICY = "urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy";
 
     /** URI for NoAuthnContext status code. */
-    public static final String NO_AUTHN_CONTEXT = "urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext";
+    @Nonnull public static final String NO_AUTHN_CONTEXT = "urn:oasis:names:tc:SAML:2.0:status:NoAuthnContext";
 
     /** URI for NoAvailableIDP status code. */
-    public static final String NO_AVAILABLE_IDP = "urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP";
+    @Nonnull public static final String NO_AVAILABLE_IDP = "urn:oasis:names:tc:SAML:2.0:status:NoAvailableIDP";
 
     /** URI for NoPassive status code. */
-    public static final String NO_PASSIVE = "urn:oasis:names:tc:SAML:2.0:status:NoPassive";
+    @Nonnull public static final String NO_PASSIVE = "urn:oasis:names:tc:SAML:2.0:status:NoPassive";
 
     /** URI for NoSupportedIDP status code. */
-    public static final String NO_SUPPORTED_IDP = "urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP";
+    @Nonnull public static final String NO_SUPPORTED_IDP = "urn:oasis:names:tc:SAML:2.0:status:NoSupportedIDP";
 
     /** URI for PartialLogout status code. */
-    public static final String PARTIAL_LOGOUT = "urn:oasis:names:tc:SAML:2.0:status:PartialLogout";
+    @Nonnull public static final String PARTIAL_LOGOUT = "urn:oasis:names:tc:SAML:2.0:status:PartialLogout";
 
     /** URI for ProxyCountExceeded status code. */
-    public static final String PROXY_COUNT_EXCEEDED = "urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded";
+    @Nonnull public static final String PROXY_COUNT_EXCEEDED = "urn:oasis:names:tc:SAML:2.0:status:ProxyCountExceeded";
 
     /** URI for RequestDenied status code. */
-    public static final String REQUEST_DENIED = "urn:oasis:names:tc:SAML:2.0:status:RequestDenied";
+    @Nonnull public static final String REQUEST_DENIED = "urn:oasis:names:tc:SAML:2.0:status:RequestDenied";
 
     /** URI for RequestUnsupported status code. */
-    public static final String REQUEST_UNSUPPORTED = "urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported";
+    @Nonnull public static final String REQUEST_UNSUPPORTED = "urn:oasis:names:tc:SAML:2.0:status:RequestUnsupported";
 
     /** URI for RequestVersionDeprecated status code. */
-    public static final String REQUEST_VERSION_DEPRECATED =
+    @Nonnull public static final String REQUEST_VERSION_DEPRECATED =
             "urn:oasis:names:tc:SAML:2.0:status:RequestVersionDeprecated";
 
     /** URI for RequestVersionTooHigh status code. */
-    public static final String REQUEST_VERSION_TOO_HIGH = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh";
+    @Nonnull public static final String REQUEST_VERSION_TOO_HIGH = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooHigh";
     
     /** URI for RequestVersionTooLow status code. */
-    public static final String REQUEST_VERSION_TOO_LOW = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow";
+    @Nonnull public static final String REQUEST_VERSION_TOO_LOW = "urn:oasis:names:tc:SAML:2.0:status:RequestVersionTooLow";
 
     /** URI for ResourceNotRecognized status code. */
-    public static final String RESOURCE_NOT_RECOGNIZED = "urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized";
+    @Nonnull public static final String RESOURCE_NOT_RECOGNIZED = "urn:oasis:names:tc:SAML:2.0:status:ResourceNotRecognized";
 
     /** URI for TooManyResponses status code. */
-    public static final String TOO_MANY_RESPONSES = "urn:oasis:names:tc:SAML:2.0:status:TooManyResponses";
+    @Nonnull public static final String TOO_MANY_RESPONSES = "urn:oasis:names:tc:SAML:2.0:status:TooManyResponses";
 
     /** URI for UnknownAttrProfile status code. */
-    public static final String UNKNOWN_ATTR_PROFILE = "urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile";
+    @Nonnull public static final String UNKNOWN_ATTR_PROFILE = "urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfile";
 
     /** URI for UnknownPrincipal status code. */
-    public static final String UNKNOWN_PRINCIPAL = "urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal";
+    @Nonnull public static final String UNKNOWN_PRINCIPAL = "urn:oasis:names:tc:SAML:2.0:status:UnknownPrincipal";
 
     /** URI for UnsupportedBinding status code. */
-    public static final String UNSUPPORTED_BINDING = "urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding";
+    @Nonnull public static final String UNSUPPORTED_BINDING = "urn:oasis:names:tc:SAML:2.0:status:UnsupportedBinding";
 
     /**
      * Gets the Status Code of this Status Code.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusDetail.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusDetail.java
index f9fb48f72..8c4c7c9ce 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusDetail.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusDetail.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.ElementExtensibleXMLObject;
@@ -33,16 +34,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface StatusDetail extends SAMLObject, ElementExtensibleXMLObject {
 
     /** Local Name of StatusDetail. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "StatusDetail";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "StatusDetailType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "StatusDetailType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusResponseType.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusResponseType.java
index c7fae8daf..b870b02d2 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusResponseType.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/StatusResponseType.java
@@ -23,6 +23,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -36,54 +37,54 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface StatusResponseType extends SignableSAMLObject {
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "StatusResponseType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "StatusResponseType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** ID attribute name. */
-    static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull static final String ID_ATTRIB_NAME = "ID";
 
     /** InResponseTo attribute name. */
-    static final String IN_RESPONSE_TO_ATTRIB_NAME = "InResponseTo";
+    @Nonnull static final String IN_RESPONSE_TO_ATTRIB_NAME = "InResponseTo";
 
     /** Version attribute name. */
-    static final String VERSION_ATTRIB_NAME = "Version";
+    @Nonnull static final String VERSION_ATTRIB_NAME = "Version";
 
     /** IssueInstant attribute name. */
-    static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
+    @Nonnull static final String ISSUE_INSTANT_ATTRIB_NAME = "IssueInstant";
 
     /** QName for the attribute which defines the IssueInstant. */
-    static final QName ISSUE_INSTANT_ATTRIB_QNAME =
+    @Nonnull static final QName ISSUE_INSTANT_ATTRIB_QNAME =
             new QName(null, "IssueInstant", XMLConstants.DEFAULT_NS_PREFIX);
     
     /** Destination attribute name. */
-    static final String DESTINATION_ATTRIB_NAME = "Destination";
+    @Nonnull static final String DESTINATION_ATTRIB_NAME = "Destination";
 
     /** Consent attribute name. */
-    static final String CONSENT_ATTRIB_NAME = "Consent";
+    @Nonnull static final String CONSENT_ATTRIB_NAME = "Consent";
 
     /** Unspecified consent URI. */
-    static final String UNSPECIFIED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unspecified";
+    @Nonnull static final String UNSPECIFIED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unspecified";
 
     /** Obtained consent URI. */
-    static final String OBTAINED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:obtained";
+    @Nonnull static final String OBTAINED_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:obtained";
 
     /** Prior consent URI. */
-    static final String PRIOR_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:prior";
+    @Nonnull static final String PRIOR_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:prior";
 
     /** Implicit consent URI. */
-    static final String IMPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-implicit";
+    @Nonnull static final String IMPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-implicit";
 
     /** Explicit consent URI. */
-    static final String EXPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-explicit";
+    @Nonnull static final String EXPLICIT_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:current-explicit";
 
     /** Unavailable consent URI. */
-    static final String UNAVAILABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unavailable";
+    @Nonnull static final String UNAVAILABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:unavailable";
 
     /** Inapplicable consent URI. */
-    static final String INAPPLICABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:inapplicable";
+    @Nonnull static final String INAPPLICABLE_CONSENT = "urn:oasis:names:tc:SAML:2.0:consent:inapplicable";
 
     /**
      * Gets the SAML Version of this response.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Subject.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Subject.java
index fc75542ea..223955d58 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Subject.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Subject.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Subject extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Subject";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmation.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmation.java
index 6e9481a68..74d3c641e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmation.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmation.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,30 +29,30 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectConfirmation extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Method attribute name. */
-    public static final String METHOD_ATTRIB_NAME = "Method";
+    @Nonnull public static final String METHOD_ATTRIB_NAME = "Method";
     
     /** URI for the Holder of Key subject confirmation method, {@value}. */
-    public static final String METHOD_HOLDER_OF_KEY = "urn:oasis:names:tc:SAML:2.0:cm:holder-of-key";
+    @Nonnull public static final String METHOD_HOLDER_OF_KEY = "urn:oasis:names:tc:SAML:2.0:cm:holder-of-key";
     
     /** URI for the Sender Vouches subject confirmation method, {@value}. */
-    public static final String METHOD_SENDER_VOUCHES = "urn:oasis:names:tc:SAML:2.0:cm:sender-vouches";
+    @Nonnull public static final String METHOD_SENDER_VOUCHES = "urn:oasis:names:tc:SAML:2.0:cm:sender-vouches";
     
     /** URI for the Bearer subject confirmation method, {@value}. */
-    public static final String METHOD_BEARER = "urn:oasis:names:tc:SAML:2.0:cm:bearer";
+    @Nonnull public static final String METHOD_BEARER = "urn:oasis:names:tc:SAML:2.0:cm:bearer";
 
     /**
      * Get the method used to confirm this subject.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmationData.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmationData.java
index ec069c763..44a417f42 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmationData.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectConfirmationData.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.core;
 
 import java.time.Instant;
 
+import javax.annotation.Nonnull;
 import javax.xml.XMLConstants;
 import javax.xml.namespace.QName;
 
@@ -33,40 +34,40 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectConfirmationData extends SAMLObject, ElementExtensibleXMLObject, AttributeExtensibleXMLObject {
 
     /** Element local name. */
-    static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmationData";
+    @Nonnull static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmationData";
 
     /** Default element name. */
-    static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    static final String TYPE_LOCAL_NAME = "SubjectConfirmationDataType";
+    @Nonnull static final String TYPE_LOCAL_NAME = "SubjectConfirmationDataType";
 
     /** QName of the XSI type. */
-    static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** NotBefore attribute name. */
-    static final String NOT_BEFORE_ATTRIB_NAME = "NotBefore";
+    @Nonnull static final String NOT_BEFORE_ATTRIB_NAME = "NotBefore";
 
     /** QName for the NotBefore attribute. */
-    static final QName NOT_BEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
+    @Nonnull static final QName NOT_BEFORE_ATTRIB_QNAME = new QName(null, "NotBefore", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** Name for the NotOnOrAfter attribute. */
-    static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
+    @Nonnull static final String NOT_ON_OR_AFTER_ATTRIB_NAME = "NotOnOrAfter";
 
     /** QName for the NotOnOrAfter attribute. */
-    static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
+    @Nonnull static final QName NOT_ON_OR_AFTER_ATTRIB_QNAME =
             new QName(null, "NotOnOrAfter", XMLConstants.DEFAULT_NS_PREFIX);
 
     /** Recipient attribute name. */
-    static final String RECIPIENT_ATTRIB_NAME = "Recipient";
+    @Nonnull static final String RECIPIENT_ATTRIB_NAME = "Recipient";
 
     /** InResponseTo attribute name. */
-    static final String IN_RESPONSE_TO_ATTRIB_NAME = "InResponseTo";
+    @Nonnull static final String IN_RESPONSE_TO_ATTRIB_NAME = "InResponseTo";
 
     /** Address attribute name. */
-    static final String ADDRESS_ATTRIB_NAME = "Address";
+    @Nonnull static final String ADDRESS_ATTRIB_NAME = "Address";
 
     /**
      * Gets the time before which this subject is not valid.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectLocality.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectLocality.java
index 7be23d76a..aaa08d0d1 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectLocality.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectLocality.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,24 +29,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectLocality extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectLocality";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectLocalityType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20_PREFIX);
 
     /** Address attribute name. */
-    public static final String ADDRESS_ATTRIB_NAME = "Address";
+    @Nonnull public static final String ADDRESS_ATTRIB_NAME = "Address";
 
     /** DNSName attribute name. */
-    public static final String DNS_NAME_ATTRIB_NAME = "DNSName";
+    @Nonnull public static final String DNS_NAME_ATTRIB_NAME = "DNSName";
 
     /**
      * Gets the IP address of the system from which the subject was authenticated.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectQuery.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectQuery.java
index cdeb4d0dd..1ac0721c5 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectQuery.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/SubjectQuery.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -31,17 +32,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SubjectQuery extends RequestAbstractType {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectQuery";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectQueryAbstractType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Terminate.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Terminate.java
index 16b05ee34..beb4e3bd8 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Terminate.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/core/Terminate.java
@@ -21,6 +21,7 @@
 
 package org.opensaml.saml.saml2.core;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,16 +33,16 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Terminate extends SAMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Terminate";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Terminate";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20P_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "TerminateType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "TerminateType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20P_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20P_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RelayState.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RelayState.java
index b4aa7a731..2a68feb57 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RelayState.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RelayState.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.ecp;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSString;
@@ -31,17 +32,17 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface RelayState extends XSString, SAMLObject, MustUnderstandBearing, ActorBearing {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RelayState";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RelayState";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RelayStateType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RelayStateType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
 }
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Request.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Request.java
index 8fb271246..8dbce6d37 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Request.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Request.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.ecp;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -33,24 +34,24 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface Request extends SAMLObject, MustUnderstandBearing, ActorBearing {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Request";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RequestType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RequestType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
     /** ProviderName attribute name. */
-    public static final String PROVIDER_NAME_ATTRIB_NAME = "ProviderName";
+    @Nonnull public static final String PROVIDER_NAME_ATTRIB_NAME = "ProviderName";
 
     /** IsPassive attribute name. */
-    public static final String IS_PASSIVE_NAME_ATTRIB_NAME = "IsPassive";
+    @Nonnull public static final String IS_PASSIVE_NAME_ATTRIB_NAME = "IsPassive";
     
     /**
      * Get the Issuer child elemet.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RequestAuthenticated.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RequestAuthenticated.java
index 397078422..8b9762020 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RequestAuthenticated.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/RequestAuthenticated.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.ecp;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,17 +32,17 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface RequestAuthenticated extends SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestAuthenticated";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RequestAuthenticated";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20ECP_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RequestAuthenticatedType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RequestAuthenticatedType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20ECP_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Response.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Response.java
index e100b38a7..10a3f2182 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Response.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/Response.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.ecp;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,21 +31,21 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface Response extends SAMLObject, MustUnderstandBearing, ActorBearing {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Response";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ResponseType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ResponseType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME =
+    @Nonnull public static final QName TYPE_NAME =
         new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME, SAMLConstants.SAML20ECP_PREFIX);
 
     /** ProviderName attribute name. */
-    public static final String ASSERTION_CONSUMER_SERVICE_URL_ATTRIB_NAME = "AssertionConsumerServiceURL";
+    @Nonnull public static final String ASSERTION_CONSUMER_SERVICE_URL_ATTRIB_NAME = "AssertionConsumerServiceURL";
     
     /**
      * Get the AssertionConsumerServiceURL attribute value.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/SubjectConfirmation.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/SubjectConfirmation.java
index 29ba4627c..05773bc55 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/SubjectConfirmation.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/ecp/SubjectConfirmation.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.ecp;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,21 +33,21 @@ import org.opensaml.soap.soap11.MustUnderstandBearing;
 public interface SubjectConfirmation extends SAMLObject, MustUnderstandBearing, ActorBearing {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SubjectConfirmation";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20ECP_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20ECP_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SubjectConfirmationType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20ECP_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20ECP_PREFIX);
 
     /** Method attribute name. */
-    public static final String METHOD_ATTRIB_NAME = "Method";
+    @Nonnull public static final String METHOD_ATTRIB_NAME = "Method";
     
     /**
      * Get the method used to confirm this subject.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java
index 149634606..40cab11d4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.AttributeExtensibleXMLObject;
@@ -34,24 +35,24 @@ public interface AffiliationDescriptor extends SignableSAMLObject, TimeBoundSAML
         AttributeExtensibleXMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AffiliationDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AffiliationDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AffiliationDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AffiliationDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** "affiliationOwnerID" attribute's local name. */
-    public static final String OWNER_ID_ATTRIB_NAME = "affiliationOwnerID";
+    @Nonnull public static final String OWNER_ID_ATTRIB_NAME = "affiliationOwnerID";
 
     /** ID attribute's local name. */
-    public static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull public static final String ID_ATTRIB_NAME = "ID";
 
     /**
      * Gets the ID of the owner of this affiliation. The owner may, or may not, be a member of the affiliation.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ArtifactResolutionService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ArtifactResolutionService.java
index d522b9e0f..85a86bf95 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ArtifactResolutionService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ArtifactResolutionService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ArtifactResolutionService extends IndexedEndpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResolutionService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ArtifactResolutionService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionConsumerService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionConsumerService.java
index d28c83564..81a40441f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionConsumerService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionConsumerService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AssertionConsumerService extends IndexedEndpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionConsumerService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionConsumerService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionIDRequestService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionIDRequestService.java
index eb7945a5e..076ff5487 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionIDRequestService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AssertionIDRequestService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AssertionIDRequestService extends Endpoint {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionIDRequestService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AssertionIDRequestService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeAuthorityDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeAuthorityDescriptor.java
index 6742c7264..922eece74 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeAuthorityDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeAuthorityDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -31,17 +32,17 @@ import org.opensaml.saml.saml2.core.Attribute;
 public interface AttributeAuthorityDescriptor extends SAMLObject, RoleDescriptor {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeAuthorityDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeAuthorityDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AttributeAuthorityDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AttributeAuthorityDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeService.java
index 944d96b22..2ef2d6531 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AttributeService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AttributeService extends Endpoint {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AttributeService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnAuthorityDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnAuthorityDescriptor.java
index 65c4b4f69..c8e7704d4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnAuthorityDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnAuthorityDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -30,17 +31,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnAuthorityDescriptor extends SAMLObject, RoleDescriptor {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnAuthorityDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnAuthorityDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "AuthnAuthorityDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "AuthnAuthorityDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnQueryService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnQueryService.java
index eed24c3c0..2b22dbea5 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnQueryService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthnQueryService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthnQueryService extends Endpoint {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnQueryService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthnQueryService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthzService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthzService.java
index d3c568166..acee529d2 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthzService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AuthzService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface AuthzService extends Endpoint {
 
     /** Default element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "AuthzService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ContactPerson.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ContactPerson.java
index f1f6aa36d..b7e01b059 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ContactPerson.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ContactPerson.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.AttributeExtensibleXMLObject;
@@ -31,21 +32,21 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ContactPerson extends SAMLObject, AttributeExtensibleXMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ContactPerson";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ContactPerson";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ContactPersonType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ContactPersonType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** "contactType" attribute's local name. */
-    public static final String CONTACT_TYPE_ATTRIB_NAME = "contactType";
+    @Nonnull public static final String CONTACT_TYPE_ATTRIB_NAME = "contactType";
 
     /**
      * Gets the type of contact this person.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EncryptionMethod.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EncryptionMethod.java
index f5e2cf5e6..91279c8e9 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EncryptionMethod.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EncryptionMethod.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -28,10 +29,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface EncryptionMethod extends org.opensaml.xmlsec.encryption.EncryptionMethod, SAMLObject {
     
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptionMethod";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EncryptionMethod";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = 
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = 
         new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MD_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Endpoint.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Endpoint.java
index 438f22f18..ecdbd5e2b 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Endpoint.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Endpoint.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.AttributeExtensibleXMLObject;
@@ -30,27 +31,27 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Endpoint extends SAMLObject, ElementExtensibleXMLObject, AttributeExtensibleXMLObject {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Endpoint";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Endpoint";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EndpointType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EndpointType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** "Binding" attribute name. */
-    public static final String BINDING_ATTRIB_NAME = "Binding";
+    @Nonnull public static final String BINDING_ATTRIB_NAME = "Binding";
 
     /** "Location" attribute name. */
-    public static final String LOCATION_ATTRIB_NAME = "Location";
+    @Nonnull public static final String LOCATION_ATTRIB_NAME = "Location";
 
     /** "ResponseLocation" attribute name. */
-    public static final String RESPONSE_LOCATION_ATTRIB_NAME = "ResponseLocation";
+    @Nonnull public static final String RESPONSE_LOCATION_ATTRIB_NAME = "ResponseLocation";
 
     /**
      * Gets the URI identifier for the binding supported by this Endpoint.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntitiesDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntitiesDescriptor.java
index 45a2bbc01..cfe255c80 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntitiesDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntitiesDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SignableSAMLObject;
@@ -34,27 +35,27 @@ import org.opensaml.saml.saml2.common.TimeBoundSAMLObject;
 public interface EntitiesDescriptor extends SignableSAMLObject, TimeBoundSAMLObject, CacheableSAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntitiesDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntitiesDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EntitiesDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EntitiesDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Element QName, no prefix. */
-    public static final QName ELEMENT_QNAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME);
+    @Nonnull public static final QName ELEMENT_QNAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME);
 
     /** "ID" attribute name. */
-    public static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull public static final String ID_ATTRIB_NAME = "ID";
 
     /** "Name" attribute name. */
-    public static final String NAME_ATTRIB_NAME = "Name";
+    @Nonnull public static final String NAME_ATTRIB_NAME = "Name";
 
     /**
      * Gets the name of this entity group.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntityDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntityDescriptor.java
index 209234119..79298fc74 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntityDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/EntityDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.AttributeExtensibleXMLObject;
@@ -34,27 +35,27 @@ public interface EntityDescriptor extends SignableSAMLObject, TimeBoundSAMLObjec
         AttributeExtensibleXMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntityDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "EntityDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "EntityDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "EntityDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Element QName, no prefix. */
-    public static final QName ELEMENT_QNAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME);
+    @Nonnull public static final QName ELEMENT_QNAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME);
 
     /** "ID" attribute name. */
-    public static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull public static final String ID_ATTRIB_NAME = "ID";
 
     /** "Name" attribute name. */
-    public static final String ENTITY_ID_ATTRIB_NAME = "entityID";
+    @Nonnull public static final String ENTITY_ID_ATTRIB_NAME = "entityID";
 
     /**
      * Gets the entity ID for this entity descriptor.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Extensions.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Extensions.java
index e4ac979b2..d295a1d1f 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Extensions.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/Extensions.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.ElementExtensibleXMLObject;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface Extensions extends SAMLObject, ElementExtensibleXMLObject {
     
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Extensions";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "Extensions";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "ExtensionsType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "ExtensionsType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/IndexedEndpoint.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/IndexedEndpoint.java
index 3620af81a..14829eff4 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/IndexedEndpoint.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/IndexedEndpoint.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.schema.XSBooleanValue;
@@ -28,24 +29,24 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface IndexedEndpoint extends Endpoint {
 
     /** Local name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IndexedEndpoint";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "IndexedEndpoint";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "IndexedEndpointType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "IndexedEndpointType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** index attribute name. */
-    public static final String INDEX_ATTRIB_NAME = "index";
+    @Nonnull public static final String INDEX_ATTRIB_NAME = "index";
 
     /** isDeault attribute name. */
-    public static final String IS_DEFAULT_ATTRIB_NAME = "isDefault";
+    @Nonnull public static final String IS_DEFAULT_ATTRIB_NAME = "isDefault";
 
     /**
      * Gets the index of the endpoint.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/KeyDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/KeyDescriptor.java
index c7a7b99b5..2f9c72f97 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/KeyDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/KeyDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.SAMLObject;
@@ -32,21 +33,21 @@ import org.opensaml.xmlsec.signature.KeyInfo;
 public interface KeyDescriptor extends SAMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "KeyDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "KeyDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "KeyDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "KeyDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** "use" attribute's local name. */
-    public static final String USE_ATTRIB_NAME = "use";
+    @Nonnull public static final String USE_ATTRIB_NAME = "use";
 
     /**
      * Gets the use of this key.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ManageNameIDService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ManageNameIDService.java
index 57df8bd46..a60518c4e 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ManageNameIDService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/ManageNameIDService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface ManageNameIDService extends Endpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "ManageNameIDService";
     
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME =
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME =
             new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME, SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/NameIDMappingService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/NameIDMappingService.java
index 831cab776..4afebee86 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/NameIDMappingService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/NameIDMappingService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface NameIDMappingService extends Endpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "NameIDMappingService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/OrganizationDisplayName.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/OrganizationDisplayName.java
index dcf876040..383c5b95c 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/OrganizationDisplayName.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/OrganizationDisplayName.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,10 +28,10 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface OrganizationDisplayName extends LocalizedName {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "OrganizationDisplayName";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "OrganizationDisplayName";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/PDPDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/PDPDescriptor.java
index 19b959147..cea546454 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/PDPDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/PDPDescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface PDPDescriptor extends RoleDescriptor {
 
     /** Local name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PDPDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "PDPDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "PDPDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "PDPDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/RoleDescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/RoleDescriptor.java
index 111494041..6f1a2a795 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/RoleDescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/RoleDescriptor.java
@@ -20,6 +20,7 @@ package org.opensaml.saml.saml2.metadata;
 import java.util.Collection;
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.core.xml.AttributeExtensibleXMLObject;
@@ -35,27 +36,27 @@ public interface RoleDescriptor extends SignableSAMLObject, TimeBoundSAMLObject,
         AttributeExtensibleXMLObject {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RoleDescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "RoleDescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "RoleDescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "RoleDescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** "ID" attribute's local name. */
-    public static final String ID_ATTRIB_NAME = "ID";
+    @Nonnull public static final String ID_ATTRIB_NAME = "ID";
 
     /** "protocolEnumeration" attribute's local name. */
-    public static final String PROTOCOL_ENUMERATION_ATTRIB_NAME = "protocolSupportEnumeration";
+    @Nonnull public static final String PROTOCOL_ENUMERATION_ATTRIB_NAME = "protocolSupportEnumeration";
 
     /** "errorURL" attribute's local name. */
-    public static final String ERROR_URL_ATTRIB_NAME = "errorURL";
+    @Nonnull public static final String ERROR_URL_ATTRIB_NAME = "errorURL";
 
     /**
      * Gets the ID of this role descriptor.
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SSODescriptor.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SSODescriptor.java
index a73b2c331..3b52a2033 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SSODescriptor.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SSODescriptor.java
@@ -19,6 +19,7 @@ package org.opensaml.saml.saml2.metadata;
 
 import java.util.List;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -29,17 +30,17 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SSODescriptor extends RoleDescriptor {
 
     /** Element name, no namespace. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SSODescriptor";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SSODescriptor";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /** Local name of the XSI type. */
-    public static final String TYPE_LOCAL_NAME = "SSODescriptorType";
+    @Nonnull public static final String TYPE_LOCAL_NAME = "SSODescriptorType";
 
     /** QName of the XSI type. */
-    public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
+    @Nonnull public static final QName TYPE_NAME = new QName(SAMLConstants.SAML20MD_NS, TYPE_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 
     /**
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleLogoutService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleLogoutService.java
index 4645ab2c0..a91cbc4da 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleLogoutService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleLogoutService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SingleLogoutService extends Endpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SingleLogoutService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SingleLogoutService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file
diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleSignOnService.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleSignOnService.java
index b94ebfd7d..ff5c2761a 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleSignOnService.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/SingleSignOnService.java
@@ -17,6 +17,7 @@
 
 package org.opensaml.saml.saml2.metadata;
 
+import javax.annotation.Nonnull;
 import javax.xml.namespace.QName;
 
 import org.opensaml.saml.common.xml.SAMLConstants;
@@ -27,9 +28,9 @@ import org.opensaml.saml.common.xml.SAMLConstants;
 public interface SingleSignOnService extends Endpoint {
 
     /** Element local name. */
-    public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SingleSignOnService";
+    @Nonnull public static final String DEFAULT_ELEMENT_LOCAL_NAME = "SingleSignOnService";
 
     /** Default element name. */
-    public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
+    @Nonnull public static final QName DEFAULT_ELEMENT_NAME = new QName(SAMLConstants.SAML20MD_NS, DEFAULT_ELEMENT_LOCAL_NAME,
             SAMLConstants.SAML20MD_PREFIX);
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list