Subject:CDISC Author:Simon Berry Date:24 Oct 2008 11:33 AM
I'm looking at creating xml files which use the schema defined in ODM1-2-0.xsd.
I downloaded the schema from the CDISC site, opened it in Stylus Studio and then did a validation which gave the following error:
Validating ODM1-2-0.xsd... http://www.w3.org/2001/XMLSchema.dtd:121,9: warning: Attribute 'xmlns' has already been declared for element 'schema'
:0,0: Complex type '__AnonC1' violates the Unique Particle Attribution rule in its components 'Signature' and '##other'
The XML document ODM1-2-0.xsd is NOT valid (1 errors)
where %nds; is expanded into "xmlns" because the 's' entity in the internal DTD is set to an empty string. So the ATTLIST has two definitions for the xmlns attribute, hence the warning "Attribute 'xmlns' has already been declared for element 'schema'".
The other error is caused by this structure in the ODM1-2-0.xsd schema
The final entry, <xs:any namespace="##other"> means "anything that is not part of the targetNamespace namespace can be placed here"; but the previous entry, <xs:element ref="ds:Signature"> is indeed allowing an element that is not part of the ODMG namespace. So there is ambiguity on which declaration should be used to validate what comes after the Association element.
Subject:CDISC Author:(Deleted User) Date:27 Oct 2008 09:15 AM
Hi Simon,
yes, I (and other persons - see http://www.cdisc.org/bbs/forums/thread-view.asp?tid=2324&posts=5&start=1) think that the CDISC 1.2.0 schema violates the UPA rule of XML Schema (Unique Particle Attribution); you could edit the schema to remove the xs:any element declaration, but this would break the extension mechanism of CDISC. A better approach should be switching to the 1.2.1 revision of the CDISC schema, where they changed the way extensibility is performed (removing the usage of xs:any). See http://www.cdisc.org/models/odm/v1.2.1/index.html