Forums: Troubleshooting and Problems
This is a case where the specification has a typo and the XML schema is right.
The MethodDef element needs a Description child element.
This will be fixed in Define-XML v2.1.
Pinnacle 21 does a great job in catching this issue!
Cheers
Lex Jansen
Define-XML dev team
The (technical) reason for this is that define.xml 2.0 is based on the ODM standard, where the child Description element is mandatory (exactly 1 occurrence) by the XML-Schema. An extension to ODM (as define.xml is) cannot remove Schema rules, only add to them. In the context of ODM this rule makes sense as we require that a human-readable description of the method is provided, and not only a machine-readable (where FormalExpression is used - which is optional). As Lex already stated, this is a typo in the specification. Personally I believe that also in the context of define.xml this rule makes sense, as one must then provide a short description in all cases. The reviewer can (based on that short description) then still decide whether he/she looks into the referenced document at the given page or named destination for the details of the method.
The reason why Pinnacle21 now nicely captures is that they switched from a Schematron-only validation to a Schema+Schematron validation, which I also favor.
Thanks Lex and Jozef for this precision.
Nevertheless, def:DocumentRef should be allowed.
Cheers
-- Thierry
Hi Thierry,
def:DocumentRef is allowed, but needs a Description as well.
Cheers,
Lex
Just to clarify, the schema is reporting that there is invalid content starting with the 'def:DocumentRef' because there is no 'Description' element preceeding it. There is nothing actually wrong with your 'def:DocumentRef'.
Hi,
When validating a define.xml (define-xml 2.0), I get paired DD0057/DD0007 messages:
DD0057 Missing Description value. Error 9
DD0007 Invalid content was found starting with element 'def:DocumentRef'. Warning 9
Here is an example of a MethodDef generating these messages:
<MethodDef OID="mt.11" Name="Derivation of CM.EPOCH" Type="Computation">
<def:DocumentRef leafID="lf.sdrg">
<def:PDFPageRef PageRefs="method_11" Type="NamedDestination"/>
</def:DocumentRef>
</MethodDef>
The specification for MethodDef (page 88) states:
Business Rule: Must contain the child Description element or the child def:DocumentRef element
You should therefore allow for a child def:DocumentRef element, and check that either Description or def:DocumentRef is provided.
Cheers
-- Thierry