neilg 2003/11/28 12:20:55
Modified: c/src/xercesc/internal IGXMLScanner2.cpp SGXMLScanner.cpp
c/src/xercesc/framework/psvi PSVIAttribute.cpp
PSVIAttribute.hpp
Log:
make use of canonical representation in PSVIAttribute implementation
Revision Changes Path
1.49 +10 -8 xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
Index: IGXMLScanner2.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -r1.48 -r1.49
--- IGXMLScanner2.cpp 28 Nov 2003 19:54:31 -0000 1.48
+++ IGXMLScanner2.cpp 28 Nov 2003 20:20:54 -0000 1.49
@@ -580,7 +580,8 @@
actualAttDef = (SchemaAttDef *)attDefForWildCard;
XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration
*)fModel->getXSObject(actualAttDef);
PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
- XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition
*)fModel->getXSObject(actualAttDef->getDatatypeValidator());
+ DatatypeValidator * attrDataType =
actualAttDef->getDatatypeValidator();
+ XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition
*)fModel->getXSObject(attrDataType);
if(attrValid != PSVIItem::VALIDITY_VALID)
{
toFill->reset(
@@ -592,8 +593,8 @@
, 0
, actualAttDef->getValue()
, false
- , 0
, attrDecl
+ , 0
);
}
else
@@ -610,8 +611,8 @@
, memberType
, actualAttDef->getValue()
, false
- , 0
, attrDecl
+ , (memberType)?attrValidator:attrDataType
);
}
}
@@ -646,7 +647,7 @@
, 0
, false
, 0
- , 0
+ , attrValidator
);
}
}
@@ -821,8 +822,9 @@
{
PSVIAttribute *defAttrToFill =
fPSVIAttrList->getPSVIAttributeToFill();
XSAttributeDeclaration *defAttrDecl =
(XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
+ DatatypeValidator * attrDataType = ((SchemaAttDef
*)curDef)->getDatatypeValidator();
XSSimpleTypeDefinition *defAttrType =
-
(XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef
*)curDef)->getDatatypeValidator());
+
(XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType);
// would have occurred during validation of default value
if(((SchemaValidator *)fValidator)->getErrorOccurred())
{
@@ -835,8 +837,8 @@
, 0
, curDef->getValue()
, true
- , 0
, defAttrDecl
+ , 0
);
}
else
@@ -858,8 +860,8 @@
, defAttrMemberType
, curDef->getValue()
, true
- , 0
, defAttrDecl
+ , (defAttrMemberType)?((SchemaValidator
*)fValidator)->getMostRecentAttrValidator():attrDataType
);
}
}
1.59 +11 -9 xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
Index: SGXMLScanner.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
retrieving revision 1.58
retrieving revision 1.59
diff -u -r1.58 -r1.59
--- SGXMLScanner.cpp 28 Nov 2003 20:09:31 -0000 1.58
+++ SGXMLScanner.cpp 28 Nov 2003 20:20:54 -0000 1.59
@@ -2586,7 +2586,8 @@
actualAttDef = (SchemaAttDef *)attDefForWildCard;
XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration
*)fModel->getXSObject(actualAttDef);
PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
- XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition
*)fModel->getXSObject(actualAttDef->getDatatypeValidator());
+ DatatypeValidator * attrDataType =
actualAttDef->getDatatypeValidator();
+ XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition
*)fModel->getXSObject(attrDataType);
if(attrValid != PSVIItem::VALIDITY_VALID)
{
toFill->reset(
@@ -2598,8 +2599,8 @@
, 0
, actualAttDef->getValue()
, false
- , 0
, attrDecl
+ , 0
);
}
else
@@ -2616,8 +2617,8 @@
, memberType
, actualAttDef->getValue()
, false
- , 0
, attrDecl
+ , (memberType)?attrValidator:attrDataType
);
}
}
@@ -2637,7 +2638,7 @@
attrValidator =
DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
if(getPSVIHandler())
{
- PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
+ PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
XSSimpleTypeDefinition *validatingType = (attrValidator)
? (XSSimpleTypeDefinition
*)fModel->getXSObject(attrValidator)
: 0;
@@ -2652,7 +2653,7 @@
, 0
, false
, 0
- , 0
+ , attrValidator
);
}
}
@@ -2789,8 +2790,9 @@
{
PSVIAttribute *defAttrToFill =
fPSVIAttrList->getPSVIAttributeToFill();
XSAttributeDeclaration *defAttrDecl =
(XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
+ DatatypeValidator * attrDataType = ((SchemaAttDef
*)curDef)->getDatatypeValidator();
XSSimpleTypeDefinition *defAttrType =
-
(XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef
*)curDef)->getDatatypeValidator());
+
(XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType);
// would have occurred during validation of default value
if(((SchemaValidator *)fValidator)->getErrorOccurred())
{
@@ -2803,8 +2805,8 @@
, 0
, curDef->getValue()
, true
- , 0
, defAttrDecl
+ , 0
);
}
else
@@ -2826,8 +2828,8 @@
, defAttrMemberType
, curDef->getValue()
, true
- , 0
, defAttrDecl
+ , (defAttrMemberType)?((SchemaValidator
*)fValidator)->getMostRecentAttrValidator():attrDataType
);
}
}
1.4 +9 -2 xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp
Index: PSVIAttribute.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- PSVIAttribute.cpp 27 Nov 2003 06:10:32 -0000 1.3
+++ PSVIAttribute.cpp 28 Nov 2003 20:20:54 -0000 1.4
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.4 2003/11/28 20:20:54 neilg
+ * make use of canonical representation in PSVIAttribute implementation
+ *
* Revision 1.3 2003/11/27 06:10:32 neilg
* PSVIAttribute implementation
*
@@ -86,8 +89,8 @@
, XSSimpleTypeDefinition * memberType
, const XMLCh * const defaultValue
, const bool isSpecified
- , const XMLCh * const canonicalValue
, XSAttributeDeclaration * attrDecl
+ , DatatypeValidator *dv
)
{
fValidationContext = valContext;
@@ -98,7 +101,11 @@
fMemberType = memberType;
fDefaultValue = defaultValue;
fIsSpecified = isSpecified;
- fCanonicalValue = canonicalValue;
+ fMemoryManager->deallocate((void *)fCanonicalValue);
+ if(normalizedValue && dv)
+ fCanonicalValue = dv->getCanonicalRepresentation(normalizedValue,
fMemoryManager);
+ else
+ fCanonicalValue = 0;
fAttributeDecl = attrDecl;
}
1.5 +9 -2 xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp
Index: PSVIAttribute.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- PSVIAttribute.hpp 27 Nov 2003 06:10:32 -0000 1.4
+++ PSVIAttribute.hpp 28 Nov 2003 20:20:54 -0000 1.5
@@ -56,6 +56,9 @@
/*
* $Log$
+ * Revision 1.5 2003/11/28 20:20:54 neilg
+ * make use of canonical representation in PSVIAttribute implementation
+ *
* Revision 1.4 2003/11/27 06:10:32 neilg
* PSVIAttribute implementation
*
@@ -75,6 +78,7 @@
#include <xercesc/framework/psvi/PSVIItem.hpp>
#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
+#include <xercesc/validators/datatype/DatatypeValidator.hpp>
XERCES_CPP_NAMESPACE_BEGIN
@@ -162,8 +166,8 @@
, XSSimpleTypeDefinition * memberType
, const XMLCh * const defaultValue
, const bool isSpecified
- , const XMLCh * const canonicalValue
, XSAttributeDeclaration * attrDecl
+ , DatatypeValidator * dv
);
/**
@@ -190,7 +194,10 @@
// attribute declaration component that validated this attribute
XSAttributeDeclaration * fAttributeDecl;
};
-inline PSVIAttribute::~PSVIAttribute() {}
+inline PSVIAttribute::~PSVIAttribute()
+{
+ fMemoryManager->deallocate((void *)fCanonicalValue);
+}
inline XSAttributeDeclaration *PSVIAttribute::getAttributeDeclaration()
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]