1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-10-26 20:25:14 +03:00

Added "Particle correct 2" to parsing of model groups. Added handling

* xmlschemas.c: Added "Particle correct 2" to parsing of model groups.
  Added handling substitution groups inside <choice> and <sequence>;
  for <all> this is not supported yet. Changed circular checks for
  model groups definitions. "memberTypes" are processed at different
  levels now: component resolution first, construction later; this
  goes hand in hand with a global change to handle component
  resolution in a distinct phase. Fixed invalid default values for
  elements to mark the schema as invalid; this just resulted in an
  error report previously, but the schema was handled as valid.
  Separated the assignment of the model groups to referencing
  model group definition references (i.e. particles); this was
  needed to perform the circularity check for model group definitions.
  Added "Element Declaration Properties Correct (e-props-correct)"
  constraints. Separated component resolution for simple/complex
  types.
* include/libxml/schemasInternals.h: Added a flag for substitution
  group heads.
This commit is contained in:
Kasimier T. Buchcik 2005-04-08 11:23:56 +00:00
parent 142fb21c10
commit 1a99a39745
3 changed files with 836 additions and 485 deletions

View File

@ -1,3 +1,23 @@
Fri Apr 8 13:22:01 CEST 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
* xmlschemas.c: Added "Particle correct 2" to parsing of model groups.
Added handling substitution groups inside <choice> and <sequence>;
for <all> this is not supported yet. Changed circular checks for
model groups definitions. "memberTypes" are processed at different
levels now: component resolution first, construction later; this
goes hand in hand with a global change to handle component
resolution in a distinct phase. Fixed invalid default values for
elements to mark the schema as invalid; this just resulted in an
error report previously, but the schema was handled as valid.
Separated the assignment of the model groups to referencing
model group definition references (i.e. particles); this was
needed to perform the circularity check for model group definitions.
Added "Element Declaration Properties Correct (e-props-correct)"
constraints. Separated component resolution for simple/complex
types.
* include/libxml/schemasInternals.h: Added a flag for substitution
group heads.
Wed Apr 6 23:14:03 CEST 2005 Igor Zlatkovic <igor@zlatkovic.com>
* win32/Makefile.*: make install cleanup

View File

@ -673,6 +673,12 @@ struct _xmlSchemaType {
* substitution group exclusions: "restriction"
*/
#define XML_SCHEMAS_ELEM_FINAL_RESTRICTION 1 << 16
/**
* XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD:
*
* the declaration is a substitution group head
*/
#define XML_SCHEMAS_ELEM_SUBST_GROUP_HEAD 1 << 17
typedef struct _xmlSchemaElement xmlSchemaElement;
@ -699,7 +705,7 @@ struct _xmlSchemaElement {
const xmlChar *substGroupNs;
const xmlChar *scope;
const xmlChar *value;
struct _xmlSchemaElement *refDecl; /* the element declaration if a particle */
struct _xmlSchemaElement *refDecl; /* This will now be used for the substitution group affiliation */
xmlRegexpPtr contModel;
xmlSchemaContentType contentType;
const xmlChar *refPrefix;
@ -850,7 +856,7 @@ struct _xmlSchema {
int preserve; /* whether to free the document */
int counter; /* used to give ononymous components unique names */
xmlHashTablePtr idcDef;
void *volatiles; /* Misc. helper items (e.g. reference items) */
void *volatiles; /* Misc. helper items (e.g. reference items) */
};
XMLPUBFUN void XMLCALL xmlSchemaFreeType (xmlSchemaTypePtr type);

File diff suppressed because it is too large Load Diff