knoaman 2002/12/09 11:47:34 Modified: c/src/xercesc/NLS/EN_US XMLErrList_EN_US.Xml c/src/xercesc/framework XMLErrorCodes.hpp c/src/xercesc/util/MsgLoaders/InMemory CppErrMsgs_EN_US.hpp c/src/xercesc/util/MsgLoaders/MsgCatalog XMLMsgCat_EN_US.Msg c/src/xercesc/util/Platforms/Win32 Version.rc c/src/xercesc/validators/schema TraverseSchema.cpp Log: Schema errata E1-27. Revision Changes Path 1.18 +1 -0 xml-xerces/c/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml Index: XMLErrList_EN_US.Xml =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/NLS/EN_US/XMLErrList_EN_US.Xml,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- XMLErrList_EN_US.Xml 6 Dec 2002 16:36:10 -0000 1.17 +++ XMLErrList_EN_US.Xml 9 Dec 2002 19:47:33 -0000 1.18 @@ -304,6 +304,7 @@ <Message Id="PrefixXMLNotMatchXMLURI" Text="The prefix 'xml' cannot be bound to any namespace other than its usual namespace."/> <Message Id="XMLURINotMatchXMLPrefix" Text="The namespace for 'xml' cannot be bound to any prefix other than 'xml'."/> <Message Id="NoXMLNSAsElementPrefix" Text="Element '{0}' cannot have 'xmlns' as its prefix."/> + <Message Id="CT_SimpleTypeChildRequired" Text="Complex Type Definition Representation OK - 2.2: <restriction> must have a <simpleType> child."/> </FatalError> </MsgDomain> <MsgDomain Domain="http://apache.org/xml/messages/XMLValidity"> 1.10 +3 -1 xml-xerces/c/src/xercesc/framework/XMLErrorCodes.hpp Index: XMLErrorCodes.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/XMLErrorCodes.hpp,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- XMLErrorCodes.hpp 4 Dec 2002 02:32:43 -0000 1.9 +++ XMLErrorCodes.hpp 9 Dec 2002 19:47:33 -0000 1.10 @@ -4,6 +4,7 @@ #define ERRHEADER_XMLErrs #include <xercesc/framework/XMLErrorReporter.hpp> +#include <xercesc/util/XercesDefs.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -310,7 +311,8 @@ , PrefixXMLNotMatchXMLURI = 295 , XMLURINotMatchXMLPrefix = 296 , NoXMLNSAsElementPrefix = 297 - , F_HighBounds = 298 + , CT_SimpleTypeChildRequired = 298 + , F_HighBounds = 299 }; static bool isFatal(const XMLErrs::Codes toCheck) 1.20 +4 -1 xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp Index: CppErrMsgs_EN_US.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/InMemory/CppErrMsgs_EN_US.hpp,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- CppErrMsgs_EN_US.hpp 6 Dec 2002 16:37:01 -0000 1.19 +++ CppErrMsgs_EN_US.hpp 9 Dec 2002 19:47:33 -0000 1.20 @@ -643,10 +643,13 @@ 0x002E,0x00 } , { 0x0045,0x006C,0x0065,0x006D,0x0065,0x006E,0x0074,0x0020,0x0027,0x007B,0x0030,0x007D,0x0027,0x0020,0x0063,0x0061,0x006E,0x006E,0x006F,0x0074,0x0020,0x0068,0x0061,0x0076,0x0065,0x0020,0x0027,0x0078,0x006D,0x006C,0x006E,0x0073,0x0027,0x0020,0x0061, 0x0073,0x0020,0x0069,0x0074,0x0073,0x0020,0x0070,0x0072,0x0065,0x0066,0x0069,0x0078,0x002E,0x00 } + , { 0x0043,0x006F,0x006D,0x0070,0x006C,0x0065,0x0078,0x0020,0x0054,0x0079,0x0070,0x0065,0x0020,0x0044,0x0065,0x0066,0x0069,0x006E,0x0069,0x0074,0x0069,0x006F,0x006E,0x0020,0x0052,0x0065,0x0070,0x0072,0x0065,0x0073,0x0065,0x006E,0x0074,0x0061,0x0074, + 0x0069,0x006F,0x006E,0x0020,0x004F,0x004B,0x0020,0x002D,0x0020,0x0032,0x002E,0x0032,0x003A,0x0020,0x003C,0x0072,0x0065,0x0073,0x0074,0x0072,0x0069,0x0063,0x0074,0x0069,0x006F,0x006E,0x003E,0x0020,0x006D,0x0075,0x0073,0x0074,0x0020,0x0068,0x0061, + 0x0076,0x0065,0x0020,0x0061,0x0020,0x003C,0x0073,0x0069,0x006D,0x0070,0x006C,0x0065,0x0054,0x0079,0x0070,0x0065,0x003E,0x0020,0x0063,0x0068,0x0069,0x006C,0x0064,0x002E,0x00 } , { 0x0046,0x005F,0x0045,0x006E,0x0064,0x00 } }; -const unsigned int gXMLErrArraySize = 299; +const unsigned int gXMLErrArraySize = 300; const XMLCh gXMLValidityArray[][128] = { 1.19 +1 -0 xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg Index: XMLMsgCat_EN_US.Msg =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/MsgLoaders/MsgCatalog/XMLMsgCat_EN_US.Msg,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- XMLMsgCat_EN_US.Msg 6 Dec 2002 16:37:27 -0000 1.18 +++ XMLMsgCat_EN_US.Msg 9 Dec 2002 19:47:33 -0000 1.19 @@ -292,6 +292,7 @@ 295 The prefix 'xml' cannot be bound to any namespace other than its usual namespace. 296 The namespace for 'xml' cannot be bound to any prefix other than 'xml'. 297 Element '{0}' cannot have 'xmlns' as its prefix. +298 Complex Type Definition Representation OK - 2.2: <restriction> must have a <simpleType> child. $set 2 1.22 +1 -0 xml-xerces/c/src/xercesc/util/Platforms/Win32/Version.rc Index: Version.rc =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/Platforms/Win32/Version.rc,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- Version.rc 6 Dec 2002 16:37:42 -0000 1.21 +++ Version.rc 9 Dec 2002 19:47:33 -0000 1.22 @@ -394,6 +394,7 @@ 295 L"\x0054\x0068\x0065\x0020\x0070\x0072\x0065\x0066\x0069\x0078\x0020\x0027\x0078\x006D\x006C\x0027\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0062\x006F\x0075\x006E\x0064\x0020\x0074\x006F\x0020\x0061\x006E\x0079\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x0020\x006F\x0074\x0068\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0069\x0074\x0073\x0020\x0075\x0073\x0075\x0061\x006C\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x002E\x00" 296 L"\x0054\x0068\x0065\x0020\x006E\x0061\x006D\x0065\x0073\x0070\x0061\x0063\x0065\x0020\x0066\x006F\x0072\x0020\x0027\x0078\x006D\x006C\x0027\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0062\x0065\x0020\x0062\x006F\x0075\x006E\x0064\x0020\x0074\x006F\x0020\x0061\x006E\x0079\x0020\x0070\x0072\x0065\x0066\x0069\x0078\x0020\x006F\x0074\x0068\x0065\x0072\x0020\x0074\x0068\x0061\x006E\x0020\x0027\x0078\x006D\x006C\x0027\x002E\x00" 297 L"\x0045\x006C\x0065\x006D\x0065\x006E\x0074\x0020\x0027\x007B\x0030\x007D\x0027\x0020\x0063\x0061\x006E\x006E\x006F\x0074\x0020\x0068\x0061\x0076\x0065\x0020\x0027\x0078\x006D\x006C\x006E\x0073\x0027\x0020\x0061\x0073\x0020\x0069\x0074\x0073\x0020\x0070\x0072\x0065\x0066\x0069\x0078\x002E\x00" + 298 L"\x0043\x006F\x006D\x0070\x006C\x0065\x0078\x0020\x0054\x0079\x0070\x0065\x0020\x0044\x0065\x0066\x0069\x006E\x0069\x0074\x0069\x006F\x006E\x0020\x0052\x0065\x0070\x0072\x0065\x0073\x0065\x006E\x0074\x0061\x0074\x0069\x006F\x006E\x0020\x004F\x004B\x0020\x002D\x0020\x0032\x002E\x0032\x003A\x0020\x003C\x0072\x0065\x0073\x0074\x0072\x0069\x0063\x0074\x0069\x006F\x006E\x003E\x0020\x006D\x0075\x0073\x0074\x0020\x0068\x0061\x0076\x0065\x0020\x0061\x0020\x003C\x0073\x0069\x006D\x0070\x006C\x0065\x0054\x0079\x0070\x0065\x003E\x0020\x0063\x0068\x0069\x006C\x0064\x002E\x00" END STRINGTABLE DISCARDABLE BEGIN 1.36 +30 -3 xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp Index: TraverseSchema.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/TraverseSchema.cpp,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- TraverseSchema.cpp 4 Dec 2002 02:32:43 -0000 1.35 +++ TraverseSchema.cpp 9 Dec 2002 19:47:33 -0000 1.36 @@ -3197,12 +3197,23 @@ // check that the base isn't a complex type with complex content // and that derivation method is not included in 'final' ComplexTypeInfo* baseTypeInfo = typeInfo->getBaseComplexTypeInfo(); + bool simpleTypeRequired = false; if (baseTypeInfo) { if (baseTypeInfo->getContentType() != SchemaElementDecl::Simple) { - reportSchemaError(simpleContent, XMLUni::fgXMLErrDomain, XMLErrs::InvalidSimpleContentBase, baseName); - throw TraverseSchema::InvalidComplexTypeInfo; + + // Schema Errata: E1-27 + if (typeInfo->getDerivedBy() == SchemaSymbols::RESTRICTION + && ((baseTypeInfo->getContentType() == SchemaElementDecl::Mixed_Simple + || baseTypeInfo->getContentType() == SchemaElementDecl::Mixed_Complex) + && emptiableParticle(baseTypeInfo->getContentSpec()))) { + simpleTypeRequired = true; + } + else { + reportSchemaError(simpleContent, XMLUni::fgXMLErrDomain, XMLErrs::InvalidSimpleContentBase, baseName); + throw TraverseSchema::InvalidComplexTypeInfo; + } } if ((baseTypeInfo->getFinalSet() & typeInfo->getDerivedBy()) != 0) { @@ -3259,6 +3270,13 @@ throw TraverseSchema::InvalidComplexTypeInfo; } } + // Schema Errata E1-27 + // Complex Type Definition Restriction OK: 2.2 + else if (simpleTypeRequired) { + + reportSchemaError(content, XMLUni::fgXMLErrDomain, XMLErrs::CT_SimpleTypeChildRequired); + throw TraverseSchema::InvalidComplexTypeInfo; + } // --------------------------------------------------------------- // Build up the facet info @@ -3378,6 +3396,15 @@ } } else { + + // Schema Errata E1-27 + // Complex Type Definition Restriction OK: 2.2 + if (simpleTypeRequired) { + + reportSchemaError(content, XMLUni::fgXMLErrDomain, XMLErrs::CT_SimpleTypeChildRequired); + throw TraverseSchema::InvalidComplexTypeInfo; + } + typeInfo->setDatatypeValidator(typeInfo->getBaseDatatypeValidator()); } } // end RESTRICTION
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]