* DEIGNAN Ciaran ([email protected]) [130912 12:40]: > 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:complexType> > <xs:sequence> > <xs:element name="csId" type="csIdType"/> > <xs:element name="contentId" type="xs:string"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:choice>
Am I the only one who doesn't like the Russian Doll? http://www.oracle.com/technetwork/java/design-patterns-142138.html > 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 Have your tried print $schema->template(PERL => "$yourns:contents"); > The schema does say minOccurs="0", so I don't know why I have > to provide it. So, you can say: component => [ { cho_csRef => [] ... } > However the xs:choice does seem required, so I understand the error. The choice has to be made, but the list may be empty. That is slightly different from <choice minOccurs="0"> in which case you would not have had the complaint. > Is the schema just bad ? The schema is ok. I hope it works ;-) Choice with optional choices is aways a bit confusing. A <sequence> would have been more logical here. -- Regards, MarkOv ------------------------------------------------------------------------ Mark Overmeer MSc MARKOV Solutions [email protected] [email protected] http://Mark.Overmeer.net http://solutions.overmeer.net _______________________________________________ Xml-compile mailing list [email protected] http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile
