Can you use a codelist as either an Attribute or an Element?

The answer is that technically you can use a code list as an element or an attribute or both.  However, rule 2 of the NIEM Conformance Rules ( states the following: “If the appropriate component (type, element, attribute, etc.) required for an IEPD exists in the NIEM, use that component. Do not create a duplicate component of one that already exists.”  By defining both an attribute and an element you are creating two components that mean the same thing.  One would need a very strong business justification for using the code list as both an element and an attribute.