customInteraction / portableCustomInteraction content
customInteraction / portableCustomInteraction content
Quick question: I've been working on implementing a portableCustomInteraction, and I found that the outer customInteraction allows "grpLax.any" content, but the inner portableCustomInteraction only allows "grpStrict.any" content. I found that interesting and was wondering about the rationale behind it, as I was expecting the portableCustomInteraction to also use "grpLax.any".
I found this while testing the following content with Java code generated from the QTI XSDs. For example, this XML fragment validates according to the spec and it preserves the embedded text (and the "ABCDE" text is just an example: our real XML is some JavaScript instead of "ABCDE"):
<customInteraction responseIdentifier="YYYY"> <pci:instance>ABCDE</pci:instance> </customInteraction>
<customInteraction responseIdentifier="YYYY"> <portableCustomInteraction customInteractionIdentifierType="XXXXX" xmlns="http://www.imsglobal.org/xsd/portableCustomInteraction"> <pci:instance>ABCDE</pci:instance> </portableCustomInteraction> </customInteraction>
New PCI XSD Released
The strict extension requirement has been changed to lax and the 'intsance' element can now have text content as well as child elements (previously only child elements were permitted. The new XSD has replaced the previous one.