Re: [xml] Query regarding IDCs handling during schema parsing.

On Fri, Nov 09, 2007 at 02:14:33PM +0800, nagesh wrote:


            I  have  a  query  about  schema  validation, when the schema
   document  is  having  IDC.  My  schema document is such that, the main
   schema  will import the child schema which has an IDC definition (key)
   for  an element. So when the schema parsing is completed successfully,
   the IDC definition for that element will be stored in the child schema
   data structure created for this child schema.

            However  when the validation of the input document starts, In
   the  function  xmlSchemaPreRun(  ),  it checks for the presence of IDC
   definition only in the main schema,

   27899 if (vctxt->schema->idcDef != NULL) {

   27900   xmlHashScan(vctxt->schema->idcDef,

   27901       (xmlHashScanner) xmlSchemaAugmentIDC, vctxt);

   27902    }

             Because   of   this   check,   in  the  validation  context,
   "vctxt->aidcs" will be set only if the main schema has IDC definition.
   So  when the validation of the element declaration starts against it's
   definition  present  in  the schema file, the check for the IDC fails,
   since it is not able to find the IDC definition for the same.

   Function: xmlSchemaIDCRegisterMatchers

   23109   aidc = vctxt->aidcs;

   23110   while (aidc != NULL) {

   23111       if (aidc->def == idc)

   23112           break;

   23113       aidc = aidc->next;

   23114   }

   23115   if (aidc == NULL) {

   23116       VERROR_INT("xmlSchemaIDCRegisterMatchers",

   23117             "Could  not  find  an  augmented IDC item for an IDC

   23118       return (-1);

   23119   }

            So  in  the function, xmlSchemaPreRun( ), should it check for
   all  the schema pointers for the presence of Augmented IDC definitions
   in all the main and child schema pointers?

   Thanks in advance for the reply.

  Frankly I have no idea, I don't understand the details of XSD or of the
associated code.


Red Hat Virtualization group
Daniel Veillard      | virtualization library
veillard redhat com  | libxml GNOME XML XSLT toolkit | Rpmfind RPM search engine

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]