libxml2 r3750 - trunk



Author: rrichard
Date: Sun Jun 29 15:04:41 2008
New Revision: 3750
URL: http://svn.gnome.org/viewvc/libxml2?rev=3750&view=rev

Log:
* xmlschemas.c: fix crash with invalid whitespace facet

Modified:
   trunk/ChangeLog
   trunk/xmlschemas.c

Modified: trunk/xmlschemas.c
==============================================================================
--- trunk/xmlschemas.c	(original)
+++ trunk/xmlschemas.c	Sun Jun 29 15:04:41 2008
@@ -6120,7 +6120,7 @@
     value = xmlNodeGetContent(node);
     /*
     * 3.2.2.1 Lexical representation
-    * An instance of a datatype that is defined as ·boolean·
+    * An instance of a datatype that is defined as ïbooleanï
     * can have the following legal literals {true, false, 1, 0}.
     */
     if (xmlStrEqual(BAD_CAST value, BAD_CAST "true"))
@@ -6168,7 +6168,7 @@
         return (def);
     /*
     * 3.2.2.1 Lexical representation
-    * An instance of a datatype that is defined as ·boolean·
+    * An instance of a datatype that is defined as ïbooleanï
     * can have the following legal literals {true, false, 1, 0}.
     */
     if (xmlStrEqual(val, BAD_CAST "true"))
@@ -7698,8 +7698,8 @@
 	/*
 	* SPEC src-redefine:
 	* (7.1) "If it has an <attributeGroup> among its contents
-	* the ·actual value· of whose ref [attribute] is the same
-	* as the ·actual value· of its own name attribute plus
+	* the ïactual valueï of whose ref [attribute] is the same
+	* as the ïactual valueï of its own name attribute plus
 	* target namespace, then it must have exactly one such group."
 	*/
 	if (pctxt->redefCounter != 0) {
@@ -8848,7 +8848,7 @@
     type->flags |= XML_SCHEMAS_TYPE_VARIETY_UNION;
     /*
     * SPEC (Base type) (2) "If the <list> or <union> alternative is chosen,
-    * then the ·simple ur-type definition·."
+    * then the ïsimple ur-type definitionï."
     */
     type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
     /*
@@ -9016,7 +9016,7 @@
     type->flags |= XML_SCHEMAS_TYPE_VARIETY_LIST;
     /*
     * SPEC (Base type) (2) "If the <list> or <union> alternative is chosen,
-    * then the ·simple ur-type definition·."
+    * then the ïsimple ur-type definitionï."
     */
     type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYSIMPLETYPE);
     /*
@@ -9161,9 +9161,9 @@
     }
     /*
     * TargetNamespace:
-    * SPEC "The ·actual value· of the targetNamespace [attribute]
+    * SPEC "The ïactual valueï of the targetNamespace [attribute]
     * of the <schema> ancestor element information item if present,
-    * otherwise ·absent·.
+    * otherwise ïabsentï.
     */
     if (topLevel == 0) {
 #ifdef ENABLE_NAMED_LOCALS
@@ -9298,8 +9298,8 @@
     /*
     * REDEFINE: SPEC src-redefine (5)
     * "Within the [children], each <simpleType> must have a
-    * <restriction> among its [children] ... the ·actual value· of whose
-    * base [attribute] must be the same as the ·actual value· of its own
+    * <restriction> among its [children] ... the ïactual valueï of whose
+    * base [attribute] must be the same as the ïactual valueï of its own
     * name attribute plus target namespace;"
     */
     if (topLevel && ctxt->isRedefine && (! hasRestriction)) {
@@ -10371,7 +10371,7 @@
 	/*
 	* Given that the schemaLocation [attribute] is only a hint, it is open
 	* to applications to ignore all but the first <import> for a given
-	* namespace, regardless of the ·actual value· of schemaLocation, but
+	* namespace, regardless of the ïactual valueï of schemaLocation, but
 	* such a strategy risks missing useful information when new
 	* schemaLocations are offered.
 	*
@@ -10755,8 +10755,8 @@
     thisTargetNamespace = WXS_BUCKET(pctxt)->origTargetNamespace;
     if (namespaceName != NULL) {
 	/*
-	* 1.1 If the namespace [attribute] is present, then its ·actual value·
-	* must not match the ·actual value· of the enclosing <schema>'s
+	* 1.1 If the namespace [attribute] is present, then its ïactual valueï
+	* must not match the ïactual valueï of the enclosing <schema>'s
 	* targetNamespace [attribute].
 	*/
 	if (xmlStrEqual(thisTargetNamespace, namespaceName)) {
@@ -10957,7 +10957,7 @@
 	    * for inclusions, since the that was the feedback from the
 	    * schema people. I.e. the following spec piece will *not* be
 	    * satisfied:
-	    * SPEC src-include: "It is not an error for the ·actual value· of the
+	    * SPEC src-include: "It is not an error for the ïactual valueï of the
 	    * schemaLocation [attribute] to fail to resolve it all, in which
 	    * case no corresponding inclusion is performed.
 	    * So do we need a warning report here?"
@@ -10974,7 +10974,7 @@
 	    *
 	    * SPEC src-redefine (1)
 	    * "If there are any element information items among the [children]
-	    * other than <annotation> then the ·actual value· of the
+	    * other than <annotation> then the ïactual valueï of the
 	    * schemaLocation [attribute] must successfully resolve."
 	    * TODO: Ask the WG if a the location has always to resolve
 	    * here as well!
@@ -10994,9 +10994,9 @@
 	if (bucket->origTargetNamespace != NULL) {
 	    /*
 	    * SPEC src-include (2.1)
-	    * "SII has a targetNamespace [attribute], and its ·actual
-	    * value· is identical to the ·actual value· of the targetNamespace
-	    * [attribute] of SII’ (which must have such an [attribute])."
+	    * "SII has a targetNamespace [attribute], and its ïactual
+	    * valueï is identical to the ïactual valueï of the targetNamespace
+	    * [attribute] of SIIï (which must have such an [attribute])."
 	    */
 	    if (pctxt->targetNamespace == NULL) {
 		xmlSchemaCustomErr(ACTXT_CAST pctxt,
@@ -11343,8 +11343,8 @@
 			/*
 			* SPEC src-redefine:
 			* (6.1) "If it has a <group> among its contents at
-			* some level the ·actual value· of whose ref
-			* [attribute] is the same as the ·actual value· of
+			* some level the ïactual valueï of whose ref
+			* [attribute] is the same as the ïactual valueï of
 			* its own name attribute plus target namespace, then
 			* all of the following must be true:"
 			* (6.1.1) "It must have exactly one such group."
@@ -11369,9 +11369,9 @@
 			    xmlChar *str = NULL;
 			    /*
 			    * SPEC src-redefine:
-			    * (6.1.2) "The ·actual value· of both that
+			    * (6.1.2) "The ïactual valueï of both that
 			    * group's minOccurs and maxOccurs [attribute]
-			    * must be 1 (or ·absent·).
+			    * must be 1 (or ïabsentï).
 			    */
 			    xmlSchemaCustomErr(ACTXT_CAST ctxt,
 				XML_SCHEMAP_SRC_REDEFINE, child, NULL,
@@ -11485,8 +11485,8 @@
     *
     * SPEC (1.2) "...otherwise (<restriction> has no <simpleType> "
     * among its [children]), the simple type definition which is
-    * the {content type} of the type definition ·resolved· to by
-    * the ·actual value· of the base [attribute]"
+    * the {content type} of the type definition ïresolvedï to by
+    * the ïactual valueï of the base [attribute]"
     */
     if (xmlSchemaPValAttrQName(ctxt, schema, NULL, node, "base",
 	&(type->baseNs), &(type->base)) == 0)
@@ -11509,8 +11509,8 @@
 		/*
 		* REDEFINE: SPEC src-redefine (5)
 		* "Within the [children], each <simpleType> must have a
-		* <restriction> among its [children] ... the ·actual value· of
-		* whose base [attribute] must be the same as the ·actual value·
+		* <restriction> among its [children] ... the ïactual valueï of
+		* whose base [attribute] must be the same as the ïactual valueï
 		* of its own name attribute plus target namespace;"
 		*/
 		xmlSchemaPCustomErrExt(ctxt, XML_SCHEMAP_SRC_REDEFINE,
@@ -12271,7 +12271,7 @@
 	* SPEC
 	* "...the third alternative (neither <simpleContent> nor
 	* <complexContent>) is chosen. This case is understood as shorthand
-	* for complex content restricting the ·ur-type definition·, and the
+	* for complex content restricting the ïur-type definitionï, and the
 	* details of the mappings should be modified as necessary.
 	*/
 	type->baseType = xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
@@ -13115,8 +13115,8 @@
     if ((elemDecl->subtypes == NULL) && (elemDecl->namedType != NULL)) {
 	xmlSchemaTypePtr type;
 
-	/* (type definition) ... otherwise the type definition ·resolved·
-	* to by the ·actual value· of the type [attribute] ...
+	/* (type definition) ... otherwise the type definition ïresolvedï
+	* to by the ïactual valueï of the type [attribute] ...
 	*/
 	type = xmlSchemaGetType(ctxt->schema, elemDecl->namedType,
 	    elemDecl->namedTypeNs);
@@ -13154,7 +13154,7 @@
 	    /*
 	    * The type definitions is set to:
 	    * SPEC "...the {type definition} of the element
-	    * declaration ·resolved· to by the ·actual value·
+	    * declaration ïresolvedï to by the ïactual valueï
 	    * of the substitutionGroup [attribute], if present"
 	    */
 	    if (elemDecl->subtypes == NULL)
@@ -13192,8 +13192,8 @@
 
     /*
     * SPEC (1) "If the <union> alternative is chosen, then [Definition:]
-    * define the explicit members as the type definitions ·resolved·
-    * to by the items in the ·actual value· of the memberTypes [attribute],
+    * define the explicit members as the type definitions ïresolvedï
+    * to by the items in the ïactual valueï of the memberTypes [attribute],
     * if any, followed by the type definitions corresponding to the
     * <simpleType>s among the [children] of <union>, if any."
     */
@@ -13488,7 +13488,7 @@
 	return (0);
     }
     /*
-    * 3 If both O1 and O2 are sets of (namespace names or ·absent·),
+    * 3 If both O1 and O2 are sets of (namespace names or ïabsentï),
     * then the union of those sets must be the value.
     */
     if ((completeWild->nsSet != NULL) && (curWild->nsSet != NULL)) {
@@ -13522,7 +13522,7 @@
     }
     /*
     * 4 If the two are negations of different values (namespace names
-    * or ·absent·), then a pair of not and ·absent· must be the value.
+    * or ïabsentï), then a pair of not and ïabsentï must be the value.
     */
     if ((completeWild->negNsSet != NULL) &&
 	(curWild->negNsSet != NULL) &&
@@ -13564,7 +13564,7 @@
 	if (nsFound && absentFound) {
 	    /*
 	    * 5.1 If the set S includes both the negated namespace
-	    * name and ·absent·, then any must be the value.
+	    * name and ïabsentï, then any must be the value.
 	    */
 	    completeWild->any = 1;
 	    if (completeWild->nsSet != NULL) {
@@ -13578,7 +13578,7 @@
 	} else if (nsFound && (!absentFound)) {
 	    /*
 	    * 5.2 If the set S includes the negated namespace name
-	    * but not ·absent·, then a pair of not and ·absent· must
+	    * but not ïabsentï, then a pair of not and ïabsentï must
 	    * be the value.
 	    */
 	    if (completeWild->nsSet != NULL) {
@@ -13593,7 +13593,7 @@
 	    completeWild->negNsSet->value = NULL;
 	} else if ((!nsFound) && absentFound) {
 	    /*
-	    * 5.3 If the set S includes ·absent· but not the negated
+	    * 5.3 If the set S includes ïabsentï but not the negated
 	    * namespace name, then the union is not expressible.
 	    */
 	    xmlSchemaPErr(ctxt, completeWild->node,
@@ -13604,7 +13604,7 @@
 	} else if ((!nsFound) && (!absentFound)) {
 	    /*
 	    * 5.4 If the set S does not include either the negated namespace
-	    * name or ·absent·, then whichever of O1 or O2 is a pair of not
+	    * name or ïabsentï, then whichever of O1 or O2 is a pair of not
 	    * and a namespace name must be the value.
 	    */
 	    if (completeWild->negNsSet == NULL) {
@@ -13638,7 +13638,7 @@
 	while (cur != NULL) {
 	    if (cur->value == NULL) {
 		/*
-		* 6.1 If the set S includes ·absent·, then any must be the
+		* 6.1 If the set S includes ïabsentï, then any must be the
 		* value.
 		*/
 		completeWild->any = 1;
@@ -13656,8 +13656,8 @@
 	}
 	if (completeWild->negNsSet == NULL) {
 	    /*
-	    * 6.2 If the set S does not include ·absent·, then a pair of not
-	    * and ·absent· must be the value.
+	    * 6.2 If the set S does not include ïabsentï, then a pair of not
+	    * and ïabsentï must be the value.
 	    */
 	    if (completeWild->nsSet != NULL) {
 		xmlSchemaFreeWildcardNsSet(completeWild->nsSet);
@@ -13740,9 +13740,9 @@
     }
     /*
     * 3 If either O1 or O2 is a pair of not and a value (a namespace
-    * name or ·absent·) and the other is a set of (namespace names or
-    * ·absent·), then that set, minus the negated value if it was in
-    * the set, minus ·absent· if it was in the set, must be the value.
+    * name or ïabsentï) and the other is a set of (namespace names or
+    * ïabsentï), then that set, minus the negated value if it was in
+    * the set, minus ïabsentï if it was in the set, must be the value.
     */
     if (((completeWild->negNsSet != NULL) && (curWild->nsSet != NULL)) ||
 	((curWild->negNsSet != NULL) && (completeWild->nsSet != NULL))) {
@@ -13791,7 +13791,7 @@
 	return(0);
     }
     /*
-    * 4 If both O1 and O2 are sets of (namespace names or ·absent·),
+    * 4 If both O1 and O2 are sets of (namespace names or ïabsentï),
     * then the intersection of those sets must be the value.
     */
     if ((completeWild->nsSet != NULL) && (curWild->nsSet != NULL)) {
@@ -13841,7 +13841,7 @@
     }
     /*
     * 6 If the one is a negation of a namespace name and the other
-    * is a negation of ·absent·, then the one which is the negation
+    * is a negation of ïabsentï, then the one which is the negation
     * of a namespace name must be the value.
     */
     if ((completeWild->negNsSet != NULL) && (curWild->negNsSet != NULL) &&
@@ -13873,7 +13873,7 @@
     if (super->any)
 	return (0);
     /*
-    * 2.1 sub must be a pair of not and a namespace name or ·absent·.
+    * 2.1 sub must be a pair of not and a namespace name or ïabsentï.
     * 2.2 super must be a pair of not and the same value.
     */
     if ((sub->negNsSet != NULL) &&
@@ -13881,7 +13881,7 @@
 	(sub->negNsSet->value == sub->negNsSet->value))
 	return (0);
     /*
-    * 3.1 sub must be a set whose members are either namespace names or ·absent·.
+    * 3.1 sub must be a set whose members are either namespace names or ïabsentï.
     */
     if (sub->nsSet != NULL) {
 	/*
@@ -13912,7 +13912,7 @@
 	    xmlSchemaWildcardNsPtr cur;
 	    /*
 	    * 3.2.2 super must be a pair of not and a namespace name or
-	    * ·absent· and that value must not be in sub's set.
+	    * ïabsentï and that value must not be in sub's set.
 	    */
 	    cur = sub->nsSet;
 	    while (cur != NULL) {
@@ -14074,7 +14074,7 @@
 			* SPEC (2.1.2) "R's {attribute declaration}'s
 			* {type definition} must be validly derived from
 			* B's {type definition} given the empty set as
-			* defined in Type Derivation OK (Simple) (§3.14.6)."
+			* defined in Type Derivation OK (Simple) (ï3.14.6)."
 			*/
 			xmlSchemaPAttrUseErr4(pctxt,
 			    XML_SCHEMAP_DERIVATION_OK_RESTRICTION_2_1_2,
@@ -14106,8 +14106,8 @@
 			/*
 			* 2.1.3 ... one of the following must be true
 			*
-			* 2.1.3.1 B's ·effective value constraint· is
-			* ·absent· or default.
+			* 2.1.3.1 B's ïeffective value constraintï is
+			* ïabsentï or default.
 			*/
 			if ((bEffValue != NULL) &&
 			    (effFixed == 1)) {
@@ -14116,7 +14116,7 @@
 			    xmlSchemaGetEffectiveValueConstraint(bcur,
 				&effFixed, &rEffValue, NULL);
 			    /*
-			    * 2.1.3.2 R's ·effective value constraint· is
+			    * 2.1.3.2 R's ïeffective value constraintï is
 			    * fixed with the same string as B's.
 			    * MAYBE TODO: Compare the computed values.
 			    *       Hmm, it says "same string" so
@@ -14150,9 +14150,9 @@
 		/*
 		* (2.2) "otherwise the {base type definition} must have an
 		* {attribute wildcard} and the {target namespace} of the
-		* R's {attribute declaration} must be ·valid· with respect
+		* R's {attribute declaration} must be ïvalidï with respect
 		* to that wildcard, as defined in Wildcard allows Namespace
-		* Name (§3.10.4)."
+		* Name (ï3.10.4)."
 		*/
 		if ((baseWild == NULL) ||
 		    (xmlSchemaCheckCVCWildcardNamespace(baseWild,
@@ -14250,7 +14250,7 @@
 	    * (4.2) "The complex type definition's {attribute wildcard}'s
 	    * {namespace constraint} must be a subset of the {base type
 	    * definition}'s {attribute wildcard}'s {namespace constraint},
-	    * as defined by Wildcard Subset (§3.10.6)."
+	    * as defined by Wildcard Subset (ï3.10.6)."
 	    */
 	    xmlSchemaCustomErr4(ACTXT_CAST pctxt,
 		XML_SCHEMAP_DERIVATION_OK_RESTRICTION_4_2,
@@ -14264,8 +14264,8 @@
 	    FREE_AND_NULL(str);
 	    return(pctxt->err);
 	}
-	/* 4.3 Unless the {base type definition} is the ·ur-type
-	* definition·, the complex type definition's {attribute
+	/* 4.3 Unless the {base type definition} is the ïur-type
+	* definitionï, the complex type definition's {attribute
 	* wildcard}'s {process contents} must be identical to or
 	* stronger than the {base type definition}'s {attribute
 	* wildcard}'s {process contents}, where strict is stronger
@@ -14451,7 +14451,7 @@
     if (WXS_IS_EXTENSION(type)) {
 	if (baseType->attributeWildcard != NULL) {
 	    /*
-	    * (3.2.2.1) "If the ·base wildcard· is non-·absent·, then
+	    * (3.2.2.1) "If the ïbase wildcardï is non-ïabsentï, then
 	    * the appropriate case among the following:"
 	    */
 	    if (type->attributeWildcard != NULL) {
@@ -14459,26 +14459,26 @@
 		* Union the complete wildcard with the base wildcard.
 		* SPEC {attribute wildcard}
 		* (3.2.2.1.2) "otherwise a wildcard whose {process contents}
-		* and {annotation} are those of the ·complete wildcard·,
+		* and {annotation} are those of the ïcomplete wildcardï,
 		* and whose {namespace constraint} is the intensional union
-		* of the {namespace constraint} of the ·complete wildcard·
-		* and of the ·base wildcard·, as defined in Attribute
-		* Wildcard Union (§3.10.6)."
+		* of the {namespace constraint} of the ïcomplete wildcardï
+		* and of the ïbase wildcardï, as defined in Attribute
+		* Wildcard Union (ï3.10.6)."
 		*/
 		if (xmlSchemaUnionWildcards(pctxt, type->attributeWildcard,
 		    baseType->attributeWildcard) == -1)
 		    goto exit_failure;
 	    } else {
 		/*
-		* (3.2.2.1.1) "If the ·complete wildcard· is ·absent·,
-		* then the ·base wildcard·."
+		* (3.2.2.1.1) "If the ïcomplete wildcardï is ïabsentï,
+		* then the ïbase wildcardï."
 		*/
 		type->attributeWildcard = baseType->attributeWildcard;
 	    }
 	} else {
 	    /*
-	    * (3.2.2.2) "otherwise (the ·base wildcard· is ·absent·) the
-	    * ·complete wildcard"
+	    * (3.2.2.2) "otherwise (the ïbase wildcardï is ïabsentï) the
+	    * ïcomplete wildcard"
 	    * NOOP
 	    */
 	}
@@ -14486,7 +14486,7 @@
 	/*
 	* SPEC {attribute wildcard}
 	* (3.1) "If the <restriction> alternative is chosen, then the
-	* ·complete wildcard·;"
+	* ïcomplete wildcardï;"
 	* NOOP
 	*/
     }
@@ -14733,12 +14733,12 @@
     /* 2.2 */
     if (type->baseType == baseType) {
 	/*
-	* 2.2.1 D's ·base type definition· is B.
+	* 2.2.1 D's ïbase type definitionï is B.
 	*/
 	return (0);
     }
     /*
-    * 2.2.2 D's ·base type definition· is not the ·ur-type definition·
+    * 2.2.2 D's ïbase type definitionï is not the ïur-type definitionï
     * and is validly derived from B given the subset, as defined by this
     * constraint.
     */
@@ -14748,8 +14748,8 @@
 	return (0);
     }
     /*
-    * 2.2.3 D's {variety} is list or union and B is the ·simple ur-type
-    * definition·.
+    * 2.2.3 D's {variety} is list or union and B is the ïsimple ur-type
+    * definitionï.
     */
     if (WXS_IS_ANY_SIMPLE_TYPE(baseType) &&
 	(WXS_IS_LIST(type) || WXS_IS_UNION(type))) {
@@ -15061,14 +15061,14 @@
     * NOTE: This is somehow redundant, since we actually built a simple type
     * to have all the needed information; this acts as an self test.
     */
-    /* Base type: If the datatype has been ·derived· by ·restriction·
-    * then the Simple Type Definition component from which it is ·derived·,
-    * otherwise the Simple Type Definition for anySimpleType (§4.1.6).
+    /* Base type: If the datatype has been ïderivedï by ïrestrictionï
+    * then the Simple Type Definition component from which it is ïderivedï,
+    * otherwise the Simple Type Definition for anySimpleType (ï4.1.6).
     */
     if (baseType == NULL) {
 	/*
 	* TODO: Think about: "modulo the impact of Missing
-	* Sub-components (§5.3)."
+	* Sub-components (ï5.3)."
 	*/
 	xmlSchemaPCustomErr(ctxt,
 	    XML_SCHEMAP_ST_PROPS_CORRECT_1,
@@ -15127,10 +15127,10 @@
     }
 
     /*
-    * 2 All simple type definitions must be derived ultimately from the ·simple
-    * ur-type definition (so· circular definitions are disallowed). That is, it
-    * must be possible to reach a built-in primitive datatype or the ·simple
-    * ur-type definition· by repeatedly following the {base type definition}.
+    * 2 All simple type definitions must be derived ultimately from the ïsimple
+    * ur-type definition (soï circular definitions are disallowed). That is, it
+    * must be possible to reach a built-in primitive datatype or the ïsimple
+    * ur-type definitionï by repeatedly following the {base type definition}.
     *
     * NOTE: this is done in xmlSchemaCheckTypeDefCircular().
     */
@@ -15314,10 +15314,10 @@
 	    }
 	    /*
 	    * MAYBE TODO: (Hmm, not really) Datatypes states:
-	    * A ·list· datatype can be ·derived· from an ·atomic· datatype
-	    * whose ·lexical space· allows space (such as string or anyURI)or
-	    * a ·union· datatype any of whose {member type definitions}'s
-	    * ·lexical space· allows space.
+	    * A ïlistï datatype can be ïderivedï from an ïatomicï datatype
+	    * whose ïlexical spaceï allows space (such as string or anyURI)or
+	    * a ïunionï datatype any of whose {member type definitions}'s
+	    * ïlexical spaceï allows space.
 	    */
 	} else {
 	    /*
@@ -15354,7 +15354,7 @@
 	    /*
 	    * 2.3.2.3 The {item type definition} must be validly derived
 	    * from the {base type definition}'s {item type definition} given
-	    * the empty set, as defined in Type Derivation OK (Simple) (§3.14.6).
+	    * the empty set, as defined in Type Derivation OK (Simple) (ï3.14.6).
 	    */
 	    {
 		xmlSchemaTypePtr baseItemType;
@@ -15401,7 +15401,7 @@
 			case XML_SCHEMA_FACET_WHITESPACE:
 			    /*
 			    * TODO: 2.5.1.2 List datatypes
-			    * The value of ·whiteSpace· is fixed to the value collapse.
+			    * The value of ïwhiteSpaceï is fixed to the value collapse.
 			    */
 			case XML_SCHEMA_FACET_PATTERN:
 			case XML_SCHEMA_FACET_ENUMERATION:
@@ -15454,8 +15454,8 @@
 	    member = member->next;
 	}
 	/*
-	* 3.3.1 If the {base type definition} is the ·simple ur-type
-	* definition·
+	* 3.3.1 If the {base type definition} is the ïsimple ur-type
+	* definitionï
 	*/
 	if (type->baseType->builtInType == XML_SCHEMAS_ANYSIMPLETYPE) {
 	    /*
@@ -15517,7 +15517,7 @@
 	    * 3.3.2.3 The {member type definitions}, in order, must be validly
 	    * derived from the corresponding type definitions in the {base
 	    * type definition}'s {member type definitions} given the empty set,
-	    * as defined in Type Derivation OK (Simple) (§3.14.6).
+	    * as defined in Type Derivation OK (Simple) (ï3.14.6).
 	    */
 	    {
 		xmlSchemaTypeLinkPtr baseMember;
@@ -15623,7 +15623,7 @@
     /*
     * src-simple-type.1 The corresponding simple type definition, if any,
     * must satisfy the conditions set out in Constraints on Simple Type
-    * Definition Schema Components (§3.14.6).
+    * Definition Schema Components (ï3.14.6).
     */
     if (WXS_IS_RESTRICTION(type)) {
 	/*
@@ -15721,8 +15721,8 @@
 	* SPEC (2.1) "its {content type} must be a simple type definition
 	* or mixed."
 	* SPEC (2.2.2) "If the {content type} is mixed, then the {content
-	* type}'s particle must be ·emptiable· as defined by
-	* Particle Emptiable (§3.9.6)."
+	* type}'s particle must be ïemptiableï as defined by
+	* Particle Emptiable (ï3.9.6)."
 	*/
 	if ((! WXS_HAS_SIMPLE_CONTENT(type)) &&
 	    ((! WXS_HAS_MIXED_CONTENT(type)) || (! WXS_EMPTIABLE(type)))) {
@@ -15738,14 +15738,14 @@
     }
     /*
     * 1 If the type definition is a simple type definition, then the string
-    * must be ·valid· with respect to that definition as defined by String
-    * Valid (§3.14.4).
+    * must be ïvalidï with respect to that definition as defined by String
+    * Valid (ï3.14.4).
     *
     * AND
     *
     * 2.2.1 If the {content type} is a simple type definition, then the
-    * string must be ·valid· with respect to that simple type definition
-    * as defined by String Valid (§3.14.4).
+    * string must be ïvalidï with respect to that simple type definition
+    * as defined by String Valid (ï3.14.4).
     */
     if (WXS_IS_SIMPLE(type))
 	ret = xmlSchemaVCheckCVCSimpleType(ACTXT_CAST pctxt, node,
@@ -15786,8 +15786,8 @@
     *
     * SPEC (1) "The values of the properties of a complex type definition must
     * be as described in the property tableau in The Complex Type Definition
-    * Schema Component (§3.4.1), modulo the impact of Missing
-    * Sub-components (§5.3)."
+    * Schema Component (ï3.4.1), modulo the impact of Missing
+    * Sub-components (ï5.3)."
     */
     if ((type->baseType != NULL) &&
 	(WXS_IS_SIMPLE(type->baseType)) &&
@@ -15804,8 +15804,8 @@
 	return (XML_SCHEMAP_SRC_CT_1);
     }
     /*
-    * SPEC (3) "Circular definitions are disallowed, except for the ·ur-type
-    * definition·. That is, it must be possible to reach the ·ur-type
+    * SPEC (3) "Circular definitions are disallowed, except for the ïur-type
+    * definitionï. That is, it must be possible to reach the ïur-type
     * definition by repeatedly following the {base type definition}."
     *
     * NOTE (3) is done in xmlSchemaCheckTypeDefCircular().
@@ -15958,8 +15958,8 @@
     if (type->baseType == baseType)
 	return (0);
     /*
-    * SPEC (2.3.1) "D's {base type definition} must not be the ·ur-type
-    * definition·."
+    * SPEC (2.3.1) "D's {base type definition} must not be the ïur-type
+    * definitionï."
     */
     if (WXS_IS_ANYTYPE(type->baseType))
 	return (1);
@@ -15976,7 +15976,7 @@
 	/*
 	* SPEC (2.3.2.2) "If D's {base type definition} is simple, then it
 	* must be validly derived from B given the subset as defined in Type
-	* Derivation OK (Simple) (§3.14.6).
+	* Derivation OK (Simple) (ï3.14.6).
 	*/
 	return (xmlSchemaCheckCOSSTDerivedOK(actxt, type->baseType,
 	    baseType, set));
@@ -16116,7 +16116,7 @@
 	* definition must also have one, and the base type definition's
 	* {attribute  wildcard}'s {namespace constraint} must be a subset
 	* of the complex  type definition's {attribute wildcard}'s {namespace
-	* constraint}, as defined by Wildcard Subset (§3.10.6)."
+	* constraint}, as defined by Wildcard Subset (ï3.10.6)."
 	*/
 
 	/*
@@ -16213,9 +16213,9 @@
 		}
 		/*
 		* URGENT TODO SPEC (1.4.3.2.2.2) "The particle of the
-		* complex type definition must be a ·valid extension·
+		* complex type definition must be a ïvalid extensionï
 		* of the {base type definition}'s particle, as defined
-		* in Particle Valid (Extension) (§3.9.6)."
+		* in Particle Valid (Extension) (ï3.9.6)."
 		*
 		* NOTE that we won't check "Particle Valid (Extension)",
 		* since it is ensured by the derivation process in
@@ -16332,7 +16332,7 @@
     if (base->builtInType == XML_SCHEMAS_ANYTYPE) {
 	/*
 	* SPEC (5.1) "The {base type definition} must be the
-	* ·ur-type definition·."
+	* ïur-type definitionï."
 	* PASS
 	*/
     } else if ((type->contentType == XML_SCHEMA_CONTENT_SIMPLE) ||
@@ -16351,7 +16351,7 @@
 	    * SPEC (5.2.2.1) "The {content type} of the {base type
 	    * definition} must be a simple type definition from which
 	    * the {content type} is validly derived given the empty
-	    * set as defined in Type Derivation OK (Simple) (§3.14.6)."
+	    * set as defined in Type Derivation OK (Simple) (ï3.14.6)."
 	    *
 	    * ATTENTION TODO: This seems not needed if the type implicitely
 	    * derived from the base type.
@@ -16382,8 +16382,8 @@
 		(xmlSchemaParticlePtr) base->subtypes))) {
 	    /*
 	    * SPEC (5.2.2.2) "The {base type definition} must be mixed
-	    * and have a particle which is ·emptiable· as defined in
-	    * Particle Emptiable (§3.9.6)."
+	    * and have a particle which is ïemptiableï as defined in
+	    * Particle Emptiable (ï3.9.6)."
 	    * PASS
 	    */
 	} else {
@@ -16412,7 +16412,7 @@
 	    /*
 	    * SPEC (5.3.2.2) "The {content type} of the {base type
 	    * definition} must be elementOnly or mixed and have a particle
-	    * which is ·emptiable· as defined in Particle Emptiable (§3.9.6)."
+	    * which is ïemptiableï as defined in Particle Emptiable (ï3.9.6)."
 	    * PASS
 	    */
 	} else {
@@ -16445,9 +16445,9 @@
 	}
 	/*
 	* SPEC (5.4.2) "The particle of the complex type definition itself
-	* must be a ·valid restriction· of the particle of the {content
+	* must be a ïvalid restrictionï of the particle of the {content
 	* type} of the {base type definition} as defined in Particle Valid
-	* (Restriction) (§3.9.6).
+	* (Restriction) (ï3.9.6).
 	*
 	* URGENT TODO: (5.4.2)
 	*/
@@ -16516,7 +16516,7 @@
     if (! WXS_HAS_SIMPLE_CONTENT(type)) {
 	/*
 	* 1 If the <complexContent> alternative is chosen, the type definition
-	* ·resolved· to by the ·actual value· of the base [attribute]
+	* ïresolvedï to by the ïactual valueï of the base [attribute]
 	* must be a complex type definition;
 	*/
 	if (! WXS_IS_COMPLEX(base)) {
@@ -16536,7 +16536,7 @@
 	* SPEC
 	* 2 If the <simpleContent> alternative is chosen, all of the
 	* following must be true:
-	* 2.1 The type definition ·resolved· to by the ·actual value· of the
+	* 2.1 The type definition ïresolvedï to by the ïactual valueï of the
 	* base [attribute] must be one of the following:
 	*/
 	if (WXS_IS_SIMPLE(base)) {
@@ -16642,14 +16642,14 @@
     /*
     * SPEC (3) "The corresponding complex type definition component must
     * satisfy the conditions set out in Constraints on Complex Type
-    * Definition Schema Components (§3.4.6);"
+    * Definition Schema Components (ï3.4.6);"
     * NOTE (3) will be done in xmlSchemaTypeFixup().
     */
     /*
     * SPEC (4) If clause 2.2.1 or clause 2.2.2 in the correspondence specification
     * above for {attribute wildcard} is satisfied, the intensional
     * intersection must be expressible, as defined in Attribute Wildcard
-    * Intersection (§3.10.6).
+    * Intersection (ï3.10.6).
     * NOTE (4) is done in xmlSchemaFixupTypeAttributeUses().
     */
     return (ret);
@@ -16720,7 +16720,7 @@
 	return (1);
     /*
     * SPEC (2) "R's occurrence range is a valid restriction of B's
-    * occurrence range as defined by Occurrence Range OK (§3.9.6)."
+    * occurrence range as defined by Occurrence Range OK (ï3.9.6)."
     */
     if (xmlSchemaCheckParticleRangeOK(r->minOccurs, r->maxOccurs,
 	    b->minOccurs, b->maxOccurs) != 0)
@@ -16812,19 +16812,19 @@
 {
     /* TODO:Error codes (rcase-NSCompat). */
     /*
-    * SPEC "For an element declaration particle to be a ·valid restriction·
+    * SPEC "For an element declaration particle to be a ïvalid restrictionï
     * of a wildcard particle all of the following must be true:"
     *
-    * SPEC (1) "The element declaration's {target namespace} is ·valid·
+    * SPEC (1) "The element declaration's {target namespace} is ïvalidï
     * with respect to the wildcard's {namespace constraint} as defined by
-    * Wildcard allows Namespace Name (§3.10.4)."
+    * Wildcard allows Namespace Name (ï3.10.4)."
     */
     if (xmlSchemaCheckCVCWildcardNamespace((xmlSchemaWildcardPtr) b->children,
 	((xmlSchemaElementPtr) r->children)->targetNamespace) != 0)
 	return (1);
     /*
     * SPEC (2) "R's occurrence range is a valid restriction of B's
-    * occurrence range as defined by Occurrence Range OK (§3.9.6)."
+    * occurrence range as defined by Occurrence Range OK (ï3.9.6)."
     */
     if (xmlSchemaCheckParticleRangeOK(r->minOccurs, r->maxOccurs,
 	    b->minOccurs, b->maxOccurs) != 0)
@@ -16884,21 +16884,21 @@
     /* TODO: Error codes (rcase-NSSubset). */
     /*
     * SPEC (1) "R's occurrence range is a valid restriction of B's
-    * occurrence range as defined by Occurrence Range OK (§3.9.6)."
+    * occurrence range as defined by Occurrence Range OK (ï3.9.6)."
     */
     if (xmlSchemaCheckParticleRangeOK(r->minOccurs, r->maxOccurs,
 	    b->minOccurs, b->maxOccurs))
 	return (1);
     /*
     * SPEC (2) "R's {namespace constraint} must be an intensional subset
-    * of B's {namespace constraint} as defined by Wildcard Subset (§3.10.6)."
+    * of B's {namespace constraint} as defined by Wildcard Subset (ï3.10.6)."
     */
     if (xmlSchemaCheckCOSNSSubset((xmlSchemaWildcardPtr) r->children,
 	(xmlSchemaWildcardPtr) b->children))
 	return (1);
     /*
-    * SPEC (3) "Unless B is the content model wildcard of the ·ur-type
-    * definition·, R's {process contents} must be identical to or stronger
+    * SPEC (3) "Unless B is the content model wildcard of the ïur-type
+    * definitionï, R's {process contents} must be identical to or stronger
     * than B's {process contents}, where strict is stronger than lax is
     * stronger than skip."
     */
@@ -16975,12 +16975,12 @@
     if ((r->children == NULL) || (r->children->children == NULL))
 	return (-1);
     /*
-    * SPEC "For a group particle to be a ·valid restriction· of a
+    * SPEC "For a group particle to be a ïvalid restrictionï of a
     * wildcard particle..."
     *
-    * SPEC (1) "Every member of the {particles} of the group is a ·valid
-    * restriction· of the wildcard as defined by
-    * Particle Valid (Restriction) (§3.9.6)."
+    * SPEC (1) "Every member of the {particles} of the group is a ïvalid
+    * restrictionï of the wildcard as defined by
+    * Particle Valid (Restriction) (ï3.9.6)."
     */
     part = (xmlSchemaParticlePtr) r->children->children;
     do {
@@ -16991,7 +16991,7 @@
     /*
     * SPEC (2) "The effective total range of the group [...] is a
     * valid restriction of B's occurrence range as defined by
-    * Occurrence Range OK (§3.9.6)."
+    * Occurrence Range OK (ï3.9.6)."
     */
     if (xmlSchemaCheckParticleRangeOK(
 	    xmlSchemaGetParticleTotalRangeMin(r),
@@ -17030,11 +17030,11 @@
 	(r->children->type != b->children->type))
 	return (-1);
     /*
-    * SPEC "For an all or sequence group particle to be a ·valid
-    * restriction· of another group particle with the same {compositor}..."
+    * SPEC "For an all or sequence group particle to be a ïvalid
+    * restrictionï of another group particle with the same {compositor}..."
     *
     * SPEC (1) "R's occurrence range is a valid restriction of B's
-    * occurrence range as defined by Occurrence Range OK (§3.9.6)."
+    * occurrence range as defined by Occurrence Range OK (ï3.9.6)."
     */
     if (xmlSchemaCheckParticleRangeOK(r->minOccurs, r->maxOccurs,
 	    b->minOccurs, b->maxOccurs))
@@ -17603,7 +17603,7 @@
 			* The whitespace must be stronger.
 			*/
 			if (facet->whitespace < bfacet->whitespace) {
-			    FACET_RESTR_ERR(flength,
+			    FACET_RESTR_ERR(facet,
 				"The 'whitespace' value has to be equal to "
 				"or stronger than the 'whitespace' value of "
 				"the base type")
@@ -17658,7 +17658,7 @@
     xmlSchemaTypeLinkPtr link, lastLink, prevLink, subLink, newLink;
     /*
     * The actual value is then formed by replacing any union type
-    * definition in the ·explicit members· with the members of their
+    * definition in the ïexplicit membersï with the members of their
     * {member type definitions}, in order.
     *
     * TODO: There's a bug entry at
@@ -17792,8 +17792,8 @@
 	}
     }
     /*
-    * For all ·atomic· datatypes other than string (and types ·derived·
-    * by ·restriction· from it) the value of whiteSpace is fixed to
+    * For all ïatomicï datatypes other than string (and types ïderivedï
+    * by ïrestrictionï from it) the value of whiteSpace is fixed to
     * collapse
     */
     {
@@ -17982,7 +17982,7 @@
     * SPEC src-simple-type 1
     * "The corresponding simple type definition, if any, must satisfy
     * the conditions set out in Constraints on Simple Type Definition
-    * Schema Components (§3.14.6)."
+    * Schema Components (ï3.14.6)."
     */
     /*
     * Schema Component Constraint: Simple Type Definition Properties Correct
@@ -18242,7 +18242,7 @@
 	    ( ((xmlSchemaTreeItemPtr) particle->children)->children == NULL))) {
 	    if (type->flags & XML_SCHEMAS_TYPE_MIXED) {
 		/*
-		* SPEC (2.1.4) "If the ·effective mixed· is true, then
+		* SPEC (2.1.4) "If the ïeffective mixedï is true, then
 		* a particle whose properties are as follows:..."
 		*
 		* Empty sequence model group with
@@ -18304,7 +18304,7 @@
 	    if (type->contentType == XML_SCHEMA_CONTENT_EMPTY) {
 		/*
 		* SPEC (3.2.1)
-		* "If the ·effective content· is empty, then the
+		* "If the ïeffective contentï is empty, then the
 		*  {content type} of the [...] base ..."
 		*/
 		type->contentType = baseType->contentType;
@@ -18411,7 +18411,7 @@
 		    particle->children =
 			((xmlSchemaParticlePtr) baseType->subtypes)->children;
 		    /*
-		    * SPEC "followed by the ·effective content·."
+		    * SPEC "followed by the ïeffective contentï."
 		    */
 		    particle->next = effectiveContent;
 		    /*
@@ -18555,12 +18555,12 @@
 
 		/* 4.3.5.5 Constraints on enumeration Schema Components
 		* Schema Component Constraint: enumeration valid restriction
-		* It is an ·error· if any member of {value} is not in the
-		* ·value space· of {base type definition}.
+		* It is an ïerrorï if any member of {value} is not in the
+		* ïvalue spaceï of {base type definition}.
 		*
 		* minInclusive, maxInclusive, minExclusive, maxExclusive:
-		* The value ·must· be in the
-		* ·value space· of the ·base type·.
+		* The value ïmustï be in the
+		* ïvalue spaceï of the ïbase typeï.
 		*/
 		/*
 		* This function is intended to deliver a compiled value
@@ -18995,9 +18995,9 @@
     * not be an <attributeGroup> with ref [attribute] which resolves
     * to the component corresponding to this <attributeGroup>. Indirect
     * circularity is also ruled out. That is, when QName resolution
-    * (Schema Document) (§3.15.3) is applied to a ·QName· arising from
+    * (Schema Document) (ï3.15.3) is applied to a ïQNameï arising from
     * any <attributeGroup>s with a ref [attribute] among the [children],
-    * it must not be the case that a ·QName· is encountered at any depth
+    * it must not be the case that a ïQNameï is encountered at any depth
     * which resolves to the component corresponding to this <attributeGroup>.
     */
     if (attrGr->attrUses == NULL)
@@ -19254,8 +19254,8 @@
     * SPEC ag-props-correct
     * (1) "The values of the properties of an attribute group definition
     * must be as described in the property tableau in The Attribute
-    * Group Definition Schema Component (§3.6.1), modulo the impact of
-    * Missing Sub-components (§5.3);"
+    * Group Definition Schema Component (ï3.6.1), modulo the impact of
+    * Missing Sub-components (ï5.3);"
     */
 
     if ((attrGr->attrUses != NULL) &&
@@ -19389,8 +19389,8 @@
     * SPEC a-props-correct (1)
     * "The values of the properties of an attribute declaration must
     * be as described in the property tableau in The Attribute
-    * Declaration Schema Component (§3.2.1), modulo the impact of
-    * Missing Sub-components (§5.3)."
+    * Declaration Schema Component (ï3.2.1), modulo the impact of
+    * Missing Sub-components (ï5.3)."
     */
 
     if (WXS_ATTR_TYPEDEF(attr) == NULL)
@@ -19418,8 +19418,8 @@
 	/*
 	* SPEC a-props-correct (2)
 	* "if there is a {value constraint}, the canonical lexical
-	* representation of its value must be ·valid· with respect
-	* to the {type definition} as defined in String Valid (§3.14.4)."
+	* representation of its value must be ïvalidï with respect
+	* to the {type definition} as defined in String Valid (ï3.14.4)."
 	* TODO: Don't care about the *cononical* stuff here, this requirement
 	* will be removed in WXS 1.1 anyway.
 	*/
@@ -19487,15 +19487,15 @@
     /*
     * SPEC (1) "The values of the properties of an element declaration
     * must be as described in the property tableau in The Element
-    * Declaration Schema Component (§3.3.1), modulo the impact of Missing
-    * Sub-components (§5.3)."
+    * Declaration Schema Component (ï3.3.1), modulo the impact of Missing
+    * Sub-components (ï5.3)."
     */
     if (WXS_SUBST_HEAD(elemDecl) != NULL) {
 	xmlSchemaElementPtr head = WXS_SUBST_HEAD(elemDecl), circ;
 
 	xmlSchemaCheckElementDeclComponent(head, pctxt);
 	/*
-	* SPEC (3) "If there is a non-·absent· {substitution group
+	* SPEC (3) "If there is a non-ïabsentï {substitution group
 	* affiliation}, then {scope} must be global."
 	*/
 	if ((elemDecl->flags & XML_SCHEMAS_ELEM_GLOBAL) == 0) {
@@ -19539,9 +19539,9 @@
 	* of the element declaration must be validly derived from the {type
 	* definition} of the {substitution group affiliation}, given the value
 	* of the {substitution group exclusions} of the {substitution group
-	* affiliation}, as defined in Type Derivation OK (Complex) (§3.4.6)
+	* affiliation}, as defined in Type Derivation OK (Complex) (ï3.4.6)
 	* (if the {type definition} is complex) or as defined in
-	* Type Derivation OK (Simple) (§3.14.6) (if the {type definition} is
+	* Type Derivation OK (Simple) (ï3.14.6) (if the {type definition} is
 	* simple)."
 	*
 	* NOTE: {substitution group exclusions} means the values of the
@@ -19605,9 +19605,9 @@
 
 	/*
 	* SPEC (2) "If there is a {value constraint}, the canonical lexical
-	* representation of its value must be ·valid· with respect to the
+	* representation of its value must be ïvalidï with respect to the
 	* {type definition} as defined in Element Default Valid (Immediate)
-	* (§3.3.6)."
+	* (ï3.3.6)."
 	*/
 	if (typeDef == NULL) {
 	    xmlSchemaPErr(pctxt, elemDecl->node,
@@ -19675,7 +19675,7 @@
 	/*
 	* SPEC (2) "It is validly substitutable for HEAD subject to HEAD's
 	* {disallowed substitutions} as the blocking constraint, as defined in
-	* Substitution Group OK (Transitive) (§3.3.6)."
+	* Substitution Group OK (Transitive) (ï3.3.6)."
 	*/
 	for (head = WXS_SUBST_HEAD(elemDecl); head != NULL;
 	    head = WXS_SUBST_HEAD(head)) {
@@ -19808,7 +19808,7 @@
 		    * SPEC Element Declarations Consistent:
 		    * "If the {particles} contains, either directly,
 		    * indirectly (that is, within the {particles} of a
-		    * contained model group, recursively) or ·implicitly·
+		    * contained model group, recursively) or ïimplicitlyï
 		    * two or more element declaration particles with
 		    * the same {name} and {target namespace}, then
 		    * all their type definitions must be the same
@@ -20006,12 +20006,12 @@
 	ptx = xmlSchemaGetPrimitiveType(tx);
 	pty = xmlSchemaGetPrimitiveType(ty);
 	/*
-	* (1) if a datatype T' is ·derived· by ·restriction· from an
-	* atomic datatype T then the ·value space· of T' is a subset of
-	* the ·value space· of T. */
+	* (1) if a datatype T' is ïderivedï by ïrestrictionï from an
+	* atomic datatype T then the ïvalue spaceï of T' is a subset of
+	* the ïvalue spaceï of T. */
 	/*
-	* (2) if datatypes T' and T'' are ·derived· by ·restriction·
-	* from a common atomic ancestor T then the ·value space·s of T'
+	* (2) if datatypes T' and T'' are ïderivedï by ïrestrictionï
+	* from a common atomic ancestor T then the ïvalue spaceïs of T'
 	* and T'' may overlap.
 	*/
 	if (ptx != pty)
@@ -20112,8 +20112,8 @@
     * SPEC au-props-correct (1)
     * "The values of the properties of an attribute use must be as
     * described in the property tableau in The Attribute Use Schema
-    * Component (§3.5.1), modulo the impact of Missing
-    * Sub-components (§5.3)."
+    * Component (ï3.5.1), modulo the impact of Missing
+    * Sub-components (ï5.3)."
     */
 
     if (((WXS_ATTRUSE_DECL(use))->defValue != NULL) &&
@@ -20214,8 +20214,8 @@
     /*
     * The simple type definition corresponding to the <simpleType> element
     * information item in the [children], if present, otherwise the simple
-    * type definition ·resolved· to by the ·actual value· of the type
-    * [attribute], if present, otherwise the ·simple ur-type definition·.
+    * type definition ïresolvedï to by the ïactual valueï of the type
+    * [attribute], if present, otherwise the ïsimple ur-type definitionï.
     */
     if (item->flags & XML_SCHEMAS_ATTR_INTERNAL_RESOLVED)
 	return(0);
@@ -20379,11 +20379,11 @@
 
 	    /*
 	    * SPEC src-redefine:
-	    * (6.2.1) "The ·actual value· of its own name attribute plus
-	    * target namespace must successfully ·resolve· to a model
+	    * (6.2.1) "The ïactual valueï of its own name attribute plus
+	    * target namespace must successfully ïresolveï to a model
 	    * group definition in I."
-	    * (7.2.1) "The ·actual value· of its own name attribute plus
-	    * target namespace must successfully ·resolve· to an attribute
+	    * (7.2.1) "The ïactual valueï of its own name attribute plus
+	    * target namespace must successfully ïresolveï to an attribute
 	    * group definition in I."
 
 	    *
@@ -20556,10 +20556,10 @@
 		* SPEC src-redefine:
 		* (6.2.2) "The {model group} of the model group definition
 		* which corresponds to it per XML Representation of Model
-		* Group Definition Schema Components (§3.7.2) must be a
-		* ·valid restriction· of the {model group} of that model
+		* Group Definition Schema Components (ï3.7.2) must be a
+		* ïvalid restrictionï of the {model group} of that model
 		* group definition in I, as defined in Particle Valid
-		* (Restriction) (§3.9.6)."
+		* (Restriction) (ï3.9.6)."
 		*/
 		break;
 	    case XML_SCHEMA_TYPE_ATTRIBUTEGROUP:
@@ -20568,11 +20568,11 @@
 		* (7.2.2) "The {attribute uses} and {attribute wildcard} of
 		* the attribute group definition which corresponds to it
 		* per XML Representation of Attribute Group Definition Schema
-		* Components (§3.6.2) must be ·valid restrictions· of the
+		* Components (ï3.6.2) must be ïvalid restrictionsï of the
 		* {attribute uses} and {attribute wildcard} of that attribute
 		* group definition in I, as defined in clause 2, clause 3 and
 		* clause 4 of Derivation Valid (Restriction, Complex)
-		* (§3.4.6) (where references to the base type definition are
+		* (ï3.4.6) (where references to the base type definition are
 		* understood as references to the attribute group definition
 		* in I)."
 		*/
@@ -20747,9 +20747,9 @@
 
     * (6.2.2) The {model group} of the model group definition which
     * corresponds to it per XML Representation of Model Group
-    * Definition Schema Components (§3.7.2) must be a ·valid
-    * restriction· of the {model group} of that model group definition
-    * in I, as defined in Particle Valid (Restriction) (§3.9.6)."
+    * Definition Schema Components (ï3.7.2) must be a ïvalid
+    * restrictionï of the {model group} of that model group definition
+    * in I, as defined in Particle Valid (Restriction) (ï3.9.6)."
     */
     xmlSchemaCheckSRCRedefineFirst(pctxt);
 
@@ -21433,8 +21433,8 @@
 	    return(XML_SCHEMA_WHITESPACE_REPLACE);
 	else {
 	    /*
-	    * For all ·atomic· datatypes other than string (and types ·derived·
-	    * by ·restriction· from it) the value of whiteSpace is fixed to
+	    * For all ïatomicï datatypes other than string (and types ïderivedï
+	    * by ïrestrictionï from it) the value of whiteSpace is fixed to
 	    * collapse
 	    * Note that this includes built-in list datatypes.
 	    */
@@ -22739,7 +22739,7 @@
 		    xmlChar *str = NULL;
 		    /*
 		    * cvc-identity-constraint:
-		    * 3 For each node in the ·target node set· all
+		    * 3 For each node in the ïtarget node setï all
 		    * of the {fields}, with that node as the context
 		    * node, evaluate to either an empty node-set or
 		    * a node-set with exactly one member, which must
@@ -22869,8 +22869,8 @@
 
 	    /*
 	    * 4.1 If the {identity-constraint category} is unique(/key),
-	    * then no two members of the ·qualified node set· have
-	    * ·key-sequences· whose members are pairwise equal, as
+	    * then no two members of the ïqualified node setï have
+	    * ïkey-sequencesï whose members are pairwise equal, as
 	    * defined by Equal in [XML Schemas: Datatypes].
 	    *
 	    * Get the IDC binding from the matcher and check for
@@ -22998,10 +22998,10 @@
 	    {
 		xmlChar *str = NULL;
 		/*
-		* 4.2.1 (KEY) The ·target node set· and the
-		* ·qualified node set· are equal, that is, every
-		* member of the ·target node set· is also a member
-		* of the ·qualified node set· and vice versa.
+		* 4.2.1 (KEY) The ïtarget node setï and the
+		* ïqualified node setï are equal, that is, every
+		* member of the ïtarget node setï is also a member
+		* of the ïqualified node setï and vice versa.
 		*/
 		xmlSchemaCustomErr(ACTXT_CAST vctxt,
 		    XML_SCHEMAV_CVC_IDC, NULL,
@@ -24395,14 +24395,14 @@
     */
     /*
     * 2.1 If The definition is ENTITY or is validly derived from ENTITY given
-    * the empty set, as defined in Type Derivation OK (Simple) (§3.14.6), then
-    * the string must be a ·declared entity name·.
+    * the empty set, as defined in Type Derivation OK (Simple) (ï3.14.6), then
+    * the string must be a ïdeclared entity nameï.
     */
     /*
     * 2.2 If The definition is ENTITIES or is validly derived from ENTITIES
-    * given the empty set, as defined in Type Derivation OK (Simple) (§3.14.6),
-    * then every whitespace-delimited substring of the string must be a ·declared
-    * entity name·.
+    * given the empty set, as defined in Type Derivation OK (Simple) (ï3.14.6),
+    * then every whitespace-delimited substring of the string must be a ïdeclared
+    * entity nameï.
     */
     /*
     * 2.3 otherwise no further condition applies.
@@ -24414,8 +24414,8 @@
     if (WXS_IS_ANY_SIMPLE_TYPE(type) || WXS_IS_ATOMIC(type)) {
 	xmlSchemaTypePtr biType; /* The built-in type. */
 	/*
-	* SPEC (1.2.1) "if {variety} is ·atomic· then the string must ·match·
-	* a literal in the ·lexical space· of {base type definition}"
+	* SPEC (1.2.1) "if {variety} is ïatomicï then the string must ïmatchï
+	* a literal in the ïlexical spaceï of {base type definition}"
 	*/
 	/*
 	* Whitespace-normalize.
@@ -24526,9 +24526,9 @@
 	xmlChar *tmpValue = NULL;
 	unsigned long len = 0;
 	xmlSchemaValPtr prevVal = NULL, curVal = NULL;
-	/* 1.2.2 if {variety} is ·list· then the string must be a sequence
-	* of white space separated tokens, each of which ·match·es a literal
-	* in the ·lexical space· of {item type definition}
+	/* 1.2.2 if {variety} is ïlistï then the string must be a sequence
+	* of white space separated tokens, each of which ïmatchïes a literal
+	* in the ïlexical spaceï of {item type definition}
 	*/
 	/*
 	* Note that XML_SCHEMAS_TYPE_NORMVALUENEEDED will be set if
@@ -24609,10 +24609,10 @@
     } else if (WXS_IS_UNION(type)) {
 	xmlSchemaTypeLinkPtr memberLink;
 	/*
-	* TODO: For all datatypes ·derived· by ·union·  whiteSpace does
-	* not apply directly; however, the normalization behavior of ·union·
+	* TODO: For all datatypes ïderivedï by ïunionï  whiteSpace does
+	* not apply directly; however, the normalization behavior of ïunionï
 	* types is controlled by the value of whiteSpace on that one of the
-	* ·memberTypes· against which the ·union· is successfully validated.
+	* ïmemberTypesï against which the ïunionï is successfully validated.
 	*
 	* This means that the value is normalized by the first validating
 	* member type, then the facets of the union type are applied. This
@@ -24620,8 +24620,8 @@
 	*/
 
 	/*
-	* 1.2.3 if {variety} is ·union· then the string must ·match· a
-	* literal in the ·lexical space· of at least one member of
+	* 1.2.3 if {variety} is ïunionï then the string must ïmatchï a
+	* literal in the ïlexical spaceï of at least one member of
 	* {member type definitions}
 	*/
 	memberLink = xmlSchemaGetUnionSimpleTypeMemberTypes(type);
@@ -24660,9 +24660,9 @@
 	*/
 	if ((ret == 0) && (type->flags & XML_SCHEMAS_TYPE_HAS_FACETS)) {
 	    /*
-	    * The normalization behavior of ·union· types is controlled by
-	    * the value of whiteSpace on that one of the ·memberTypes·
-	    * against which the ·union· is successfully validated.
+	    * The normalization behavior of ïunionï types is controlled by
+	    * the value of whiteSpace on that one of the ïmemberTypesï
+	    * against which the ïunionï is successfully validated.
 	    */
 	    NORMALIZE(memberLink->type);
 	    ret = xmlSchemaValidateFacets(actxt, node, type,
@@ -24822,14 +24822,14 @@
 
 	    /*
 	    * SPEC cvc-elt (3.3.4) : (4.3) (Type Derivation OK)
-	    * "The ·local type definition· must be validly
+	    * "The ïlocal type definitionï must be validly
 	    * derived from the {type definition} given the union of
 	    * the {disallowed substitutions} and the {type definition}'s
 	    * {prohibited substitutions}, as defined in
-	    * Type Derivation OK (Complex) (§3.4.6)
+	    * Type Derivation OK (Complex) (ï3.4.6)
 	    * (if it is a complex type definition),
 	    * or given {disallowed substitutions} as defined in Type
-	    * Derivation OK (Simple) (§3.14.6) (if it is a simple type
+	    * Derivation OK (Simple) (ï3.14.6) (if it is a simple type
 	    * definition)."
 	    *
 	    * {disallowed substitutions}: the "block" on the element decl.
@@ -25100,8 +25100,8 @@
 
     /*
     * SPEC (cvc-attribute)
-    * (1) "The declaration must not be ·absent· (see Missing
-    * Sub-components (§5.3) for how this can fail to be
+    * (1) "The declaration must not be ïabsentï (see Missing
+    * Sub-components (ï5.3) for how this can fail to be
     * the case)."
     * (2) "Its {type definition} must not be absent."
     *
@@ -25151,15 +25151,15 @@
 	    * use with an {attribute declaration} whose {name} matches
 	    * the attribute information item's [local name] and whose
 	    * {target namespace} is identical to the attribute information
-	    * item's [namespace name] (where an ·absent· {target namespace}
+	    * item's [namespace name] (where an ïabsentï {target namespace}
 	    * is taken to be identical to a [namespace name] with no value),
-	    * then the attribute information must be ·valid· with respect
+	    * then the attribute information must be ïvalidï with respect
 	    * to that attribute use as per Attribute Locally Valid (Use)
-	    * (§3.5.4). In this case the {attribute declaration} of that
-	    * attribute use is the ·context-determined declaration· for the
+	    * (ï3.5.4). In this case the {attribute declaration} of that
+	    * attribute use is the ïcontext-determined declarationï for the
 	    * attribute information item with respect to Schema-Validity
-	    * Assessment (Attribute) (§3.2.4) and
-	    * Assessment Outcome (Attribute) (§3.2.5).
+	    * Assessment (Attribute) (ï3.2.4) and
+	    * Assessment Outcome (Attribute) (ï3.2.5).
 	    */
 	    iattr->state = XML_SCHEMAS_ATTR_ASSESSED;
 	    iattr->use = attrUse;
@@ -25237,13 +25237,13 @@
 		continue;
 	    /*
 	    * SPEC (cvc-complex-type)
-	    * (3.2.2) "The attribute information item must be ·valid· with
-	    * respect to it as defined in Item Valid (Wildcard) (§3.10.4)."
+	    * (3.2.2) "The attribute information item must be ïvalidï with
+	    * respect to it as defined in Item Valid (Wildcard) (ï3.10.4)."
 	    *
 	    * SPEC Item Valid (Wildcard) (cvc-wildcard)
-	    * "... its [namespace name] must be ·valid· with respect to
+	    * "... its [namespace name] must be ïvalidï with respect to
 	    * the wildcard constraint, as defined in Wildcard allows
-	    * Namespace Name (§3.10.4)."
+	    * Namespace Name (ï3.10.4)."
 	    */
 	    if (xmlSchemaCheckCVCWildcardNamespace(type->attributeWildcard,
 		    iattr->nsName) == 0) {
@@ -25279,11 +25279,11 @@
 		    * SPEC (cvc-complex-type)
 		    * (5) "Let [Definition:]  the wild IDs be the set of
 		    * all attribute information item to which clause 3.2
-		    * applied and whose ·validation· resulted in a
-		    * ·context-determined declaration· of mustFind or no
-		    * ·context-determined declaration· at all, and whose
+		    * applied and whose ïvalidationï resulted in a
+		    * ïcontext-determined declarationï of mustFind or no
+		    * ïcontext-determined declarationï at all, and whose
 		    * [local name] and [namespace name] resolve (as
-		    * defined by QName resolution (Instance) (§3.15.4)) to
+		    * defined by QName resolution (Instance) (ï3.15.4)) to
 		    * an attribute declaration whose {type definition} is
 		    * or is derived from ID. Then all of the following
 		    * must be true:"
@@ -25293,7 +25293,7 @@
 			iattr->typeDef, XML_SCHEMAS_ID)) {
 			/*
 			* SPEC (5.1) "There must be no more than one
-			* item in ·wild IDs·."
+			* item in ïwild IDsï."
 			*/
 			if (wildIDs != 0) {
 			    /* VAL TODO */
@@ -25304,7 +25304,7 @@
 			wildIDs++;
 			/*
 			* SPEC (cvc-complex-type)
-			* (5.2) "If ·wild IDs· is non-empty, there must not
+			* (5.2) "If ïwild IDsï is non-empty, there must not
 			* be any attribute uses among the {attribute uses}
 			* whose {attribute declaration}'s {type definition}
 			* is or is derived from ID."
@@ -25512,9 +25512,9 @@
 	    fixed = 0;
 	/*
 	* SPEC (cvc-attribute)
-	* (3) "The item's ·normalized value· must be locally ·valid·
+	* (3) "The item's ïnormalized valueï must be locally ïvalidï
 	* with respect to that {type definition} as per
-	* String Valid (§3.14.4)."
+	* String Valid (ï3.14.4)."
 	*
 	* VAL TODO: Do we already have the
 	* "normalized attribute value" here?
@@ -25552,9 +25552,9 @@
 	if (fixed) {
 	    /*
 	    * SPEC Attribute Locally Valid (Use) (cvc-au)
-	    * "For an attribute information item to be·valid·
+	    * "For an attribute information item to beïvalidï
 	    * with respect to an attribute use its *normalized*
-	    * value· must match the *canonical* lexical
+	    * valueï must match the *canonical* lexical
 	    * representation of the attribute use's {value
 	    * constraint}value, if it is present and fixed."
 	    *
@@ -25563,7 +25563,7 @@
 	    */
 	    /*
 	    * SPEC Attribute Locally Valid (cvc-attribute)
-	    * (4) "The item's *actual* value· must match the *value* of
+	    * (4) "The item's *actual* valueï must match the *value* of
 	    * the {value constraint}, if it is present and fixed."
 	    */
 	    if (iattr->val == NULL) {
@@ -25793,8 +25793,8 @@
 	* SPEC (2.1) "its {content type} must be a simple type definition
 	* or mixed."
 	* SPEC (2.2.2) "If the {content type} is mixed, then the {content
-	* type}'s particle must be ·emptiable· as defined by
-	* Particle Emptiable (§3.9.6)."
+	* type}'s particle must be ïemptiableï as defined by
+	* Particle Emptiable (ï3.9.6)."
 	*/
 	if ((! WXS_HAS_SIMPLE_CONTENT(inode->typeDef)) &&
 	    ((! WXS_HAS_MIXED_CONTENT(inode->typeDef)) ||
@@ -25810,14 +25810,14 @@
     }
     /*
     * 1 If the type definition is a simple type definition, then the string
-    * must be ·valid· with respect to that definition as defined by String
-    * Valid (§3.14.4).
+    * must be ïvalidï with respect to that definition as defined by String
+    * Valid (ï3.14.4).
     *
     * AND
     *
     * 2.2.1 If the {content type} is a simple type definition, then the
-    * string must be ·valid· with respect to that simple type definition
-    * as defined by String Valid (§3.14.4).
+    * string must be ïvalidï with respect to that simple type definition
+    * as defined by String Valid (ï3.14.4).
     */
     if (WXS_IS_SIMPLE(inode->typeDef)) {
 
@@ -26041,10 +26041,10 @@
 	(! INODE_NILLED(inode))) {
 	/*
 	* cvc-elt (3.3.4) : 5.1.1
-	* If the ·actual type definition· is a ·local type definition·
+	* If the ïactual type definitionï is a ïlocal type definitionï
 	* then the canonical lexical representation of the {value constraint}
-	* value must be a valid default for the ·actual type definition· as
-	* defined in Element Default Valid (Immediate) (§3.3.6).
+	* value must be a valid default for the ïactual type definitionï as
+	* defined in Element Default Valid (Immediate) (ï3.3.6).
 	*/
 	/*
 	* NOTE: 'local' above means types acquired by xsi:type.
@@ -26074,9 +26074,9 @@
 	* cvc-elt (3.3.4) : 5.1.2
 	* The element information item with the canonical lexical
 	* representation of the {value constraint} value used as its
-	* ·normalized value· must be ·valid· with respect to the
-	* ·actual type definition· as defined by Element Locally Valid (Type)
-	* (§3.3.4).
+	* ïnormalized valueï must be ïvalidï with respect to the
+	* ïactual type definitionï as defined by Element Locally Valid (Type)
+	* (ï3.3.4).
 	*/
 	if (WXS_IS_SIMPLE(inode->typeDef)) {
 	    ret = xmlSchemaVCheckINodeDataType(vctxt,
@@ -26123,18 +26123,18 @@
 
     } else if (! INODE_NILLED(inode)) {
 	/*
-	* 5.2.1 The element information item must be ·valid· with respect
-	* to the ·actual type definition· as defined by Element Locally
-	* Valid (Type) (§3.3.4).
+	* 5.2.1 The element information item must be ïvalidï with respect
+	* to the ïactual type definitionï as defined by Element Locally
+	* Valid (Type) (ï3.3.4).
 	*/
 	if (WXS_IS_SIMPLE(inode->typeDef)) {
 	     /*
 	    * SPEC (cvc-type) (3.1)
 	    * "If the type definition is a simple type definition, ..."
 	    * (3.1.3) "If clause 3.2 of Element Locally Valid
-	    * (Element) (§3.3.4) did not apply, then the ·normalized value·
-	    * must be ·valid· with respect to the type definition as defined
-	    * by String Valid (§3.14.4).
+	    * (Element) (ï3.3.4) did not apply, then the ïnormalized valueï
+	    * must be ïvalidï with respect to the type definition as defined
+	    * by String Valid (ï3.14.4).
 	    */
 	    ret = xmlSchemaVCheckINodeDataType(vctxt,
 		    inode, inode->typeDef, inode->value);
@@ -26142,14 +26142,14 @@
 	    /*
 	    * SPEC (cvc-type) (3.2) "If the type definition is a complex type
 	    * definition, then the element information item must be
-	    * ·valid· with respect to the type definition as per
-	    * Element Locally Valid (Complex Type) (§3.4.4);"
+	    * ïvalidï with respect to the type definition as per
+	    * Element Locally Valid (Complex Type) (ï3.4.4);"
 	    *
 	    * SPEC (cvc-complex-type) (2.2)
 	    * "If the {content type} is a simple type definition, ...
-	    * the ·normalized value· of the element information item is
-	    * ·valid· with respect to that simple type definition as
-	    * defined by String Valid (§3.14.4)."
+	    * the ïnormalized valueï of the element information item is
+	    * ïvalidï with respect to that simple type definition as
+	    * defined by String Valid (ï3.14.4)."
 	    */
 	    ret = xmlSchemaVCheckINodeDataType(vctxt,
 		inode, inode->typeDef->contentTypeDef, inode->value);
@@ -26191,8 +26191,8 @@
 		*/
 		if (WXS_HAS_MIXED_CONTENT(inode->typeDef)) {
 		    /*
-		    * 5.2.2.2.1 If the {content type} of the ·actual type
-		    * definition· is mixed, then the *initial value* of the
+		    * 5.2.2.2.1 If the {content type} of the ïactual type
+		    * definitionï is mixed, then the *initial value* of the
 		    * item must match the canonical lexical representation
 		    * of the {value constraint} value.
 		    *
@@ -26216,8 +26216,8 @@
 		    }
 		} else if (WXS_HAS_SIMPLE_CONTENT(inode->typeDef)) {
 		    /*
-		    * 5.2.2.2.2 If the {content type} of the ·actual type
-		    * definition· is a simple type definition, then the
+		    * 5.2.2.2.2 If the {content type} of the ïactual type
+		    * definitionï is a simple type definition, then the
 		    * *actual value* of the item must match the canonical
 		    * lexical representation of the {value constraint} value.
 		    */
@@ -26258,9 +26258,9 @@
 	goto internal_error;
     /*
     * MAYBE TODO:
-    * SPEC (6) "The element information item must be ·valid· with
+    * SPEC (6) "The element information item must be ïvalidï with
     * respect to each of the {identity-constraint definitions} as per
-    * Identity-constraint Satisfied (§3.11.4)."
+    * Identity-constraint Satisfied (ï3.11.4)."
     */
     /*
     * PSVI TODO: If we expose IDC node-tables via PSVI then the tables
@@ -26338,8 +26338,8 @@
     vctxt->depth--;
     vctxt->inode = vctxt->elemInfos[vctxt->depth];
     /*
-    * VAL TODO: 7 If the element information item is the ·validation root·, it must be
-    * ·valid· per Validation Root Valid (ID/IDREF) (§3.3.4).
+    * VAL TODO: 7 If the element information item is the ïvalidation rootï, it must be
+    * ïvalidï per Validation Root Valid (ID/IDREF) (ï3.3.4).
     */
     return (ret);
 
@@ -26420,11 +26420,11 @@
 		 * Fallback to "anyType".
 		 *
 		 * SPEC (cvc-assess-elt)
-		 * "If the item cannot be ·strictly assessed·, [...]
+		 * "If the item cannot be ïstrictly assessedï, [...]
 		 * an element information item's schema validity may be laxly
-		 * assessed if its ·context-determined declaration· is not
-		 * skip by ·validating· with respect to the ·ur-type
-		 * definition· as per Element Locally Valid (Type) (§3.3.4)."
+		 * assessed if its ïcontext-determined declarationï is not
+		 * skip by ïvalidatingï with respect to the ïur-type
+		 * definitionï as per Element Locally Valid (Type) (ï3.3.4)."
 		*/
 		vctxt->inode->typeDef =
 		    xmlSchemaGetBuiltInType(XML_SCHEMAS_ANYTYPE);
@@ -26496,9 +26496,9 @@
 	    * SPEC (2.4) "If the {content type} is element-only or mixed,
 	    * then the sequence of the element information item's
 	    * element information item [children], if any, taken in
-	    * order, is ·valid· with respect to the {content type}'s
+	    * order, is ïvalidï with respect to the {content type}'s
 	    * particle, as defined in Element Sequence Locally Valid
-	    * (Particle) (§3.9.4)."
+	    * (Particle) (ï3.9.4)."
 	    */
 	    ret = xmlRegExecPushString2(regexCtxt,
 		vctxt->inode->localName,



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