[Xml-compile] xs:choice question

DEIGNAN Ciaran C.DEIGNAN at rsd.com
Thu Sep 12 12:40:09 GMT 2013


Hi Mark and list,



I'm not sure if this is a XML::Compile question or just proof that I need training on XML.



I have a schema that contains a section like this:



<xs:element minOccurs="0" name="contents">

<xs:complexType>

<xs:sequence>

<xs:element maxOccurs="unbounded" minOccurs="0" name="component">

<xs:complexType>

<xs:choice>

<xs:element minOccurs="0" name="csRef">

<xs:annotation>

<xs:documentation>This element can be used to referenced when the content is already

stored in a content repository.

In the case of uploading the content, it must not be present.

</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<xs:element name="csId" type="csIdType"/>

<xs:element name="contentId" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:choice>





In perl I build a structure like this:



                               contents => {

                                               component => [

                                                               {

                                                                              csRef => { csId => 'fld', contentId => 'docid', },

                                                                              title => 'PerlTest',

                                                                              mimeType => 'text/plain',

                                                                              fileExtension => 'txt',

                                                                              lang => 'fr',

                                                               },

                                               ],





The above fragment will be converted to XML by XML::Compile::Schema. However if I don't specify the csRef, it refuses to convert to XML, and gives me the error



error: no match for required block `cho_csRef' at node/contents/component



The schema does say   minOccurs="0", so I don't know why I have to provide it.

However the xs:choice does seem required, so I understand the error.

Is the schema just bad ?



Thanks for any pointers,



Ciaran Deignan

RSD Technical Support


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/xml-compile/attachments/20130912/6076438b/attachment.htm


More information about the Xml-compile mailing list