# Is originalAuthor required? **Category:** [Reference Implementation: Java (archive)](https://discourse.openehr.org/c/reference-implementation-java-archive/154) **Created:** 2008-11-05 14:59 UTC **Views:** 10 **Replies:** 5 **URL:** https://discourse.openehr.org/t/is-originalauthor-required/14840 --- ## Post #1 by @Adam_Flinton Dear All, Running the Java ADL > XML & I get a fair few errors of the type: Error Class: java\.lang\.IllegalArgumentException Message: null or empty originalAuthor Is originalAuthor a required structure? If so then the Ocean ADL > XML is not picking that up\. If not then could the Java code be amended to not error if it is not present\. TIA Adam --- ## Post #2 by @Heath_Frankel3 Hi Adam, Can you provide details of the offending archetype? Looking at the AOM, the originalAuthor is a required attribute and this is reflected in the Resource\.xsd\. However apart from the list being non\-empty, I see no other invariant to that states that the value of the originalAuthor item cannot be an empty string\. Therefore I would suggest that the Java IllegalArgumentException "null or empty originalAuthor" is too tight\. A "not null" invariant seems reasonable\. However, not being a member of the java implementation I will leave that to them to decide what to do here\. If there is an issue with the Ocean XML output please feel free to contact me directly\. Heath --- ## Post #3 by @system Hi Adam, Heath The attribute in question, original_author is an attribute of Class RESOURCE_DESCRIPTION from rm.common.resource package. According to the specs (common_im.pdf), the type is Hash NOT a string and the invariant on it is "Original_author_valid: original_author /= Void and then not original_author.is_empty". The Java implementation (see below) of this invariant is, I believe, faithful interpretation of the specs. if (originalAuthor == null || originalAuthor.size() == 0 ) { throw new IllegalArgumentException("null or empty originalAuthor"); } The thing I am not sure here is the XML schema. If the schema is not compliant with the RM specs, perhaps the schema should be updated so the parsing code generated from schema can catch errors like this, thoughts? Cheers, Rong --- ## Post #4 by @Heath_Frankel3 Rong, Thanks for the clarification, I was assuming the error was coming from the value of the hashtable rather than hashtable itself. The XML schema contains the following: This seems to reflect the spec (i.e 1..*). It may be possible that the Ocean parser is not currently validating against the schema but I would be interested to see the archetype causing this issue to test this. Heath --- ## Post #5 by @Adam_Flinton Rong Chen wrote: > Hi Adam, Heath > > The attribute in question, original\_author is an attribute of Class > RESOURCE\_DESCRIPTION from rm\.common\.resource package\. According to the > specs \(common\_im\.pdf\), the type is Hash<String,String> NOT a string > and the invariant on it is "Original\_author\_valid: original\_author /= > Void and then not original\_author\.is\_empty"\. > > The Java implementation \(see below\) of this invariant is, I believe, > faithful interpretation of the specs\. > >     if \(originalAuthor == null || originalAuthor\.size\(\) == 0 \) \{ >         throw new IllegalArgumentException\("null or empty > originalAuthor"\); >     \} > > The thing I am not sure here is the XML schema\. If the schema is not > compliant with the RM specs, perhaps the schema should be updated so > the parsing code generated from schema can catch errors like this, > thoughts? > Any idea then which is right? I can chuck you our ADL > XML ant task so you can look at all the various errors against a given set of our ADL held on the openEHR svn\. Adam --- ## Post #6 by @Heath_Frankel3 Adam, As previously requested, provide us an example \(one will do\) of an archetype failing, we can then work out why\. Heath --- **Canonical:** https://discourse.openehr.org/t/is-originalauthor-required/14840 **Original content:** https://discourse.openehr.org/t/is-originalauthor-required/14840