Sharebar?

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>
 
However, when I move the instance inside a portableCustomInteraction, it still validates, but it does not preserve the embedded text:
 
<customInteraction responseIdentifier="YYYY">

   <portableCustomInteraction customInteractionIdentifierType="XXXXX" xmlns="http://www.imsglobal.org/xsd/portableCustomInteraction">

      <pci:instance>ABCDE</pci:instance>

   </portableCustomInteraction>

</customInteraction>
 
 
ColinSmythe's picture

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.