102 int facetType=facets_[facet];
106 facetValue_.numEnums++;
107 enumValues_.push_back(val);
110 facetValue_.pattern = (
const char*) val.c_str();
113 if (val ==
"preserve")
116 else if (val ==
"collapse")
119 else if (val ==
"replace")
123 error(
"Invalid facet value for whitespace");
134 facetValue_.valRange.maxex = num;
137 facetValue_.valRange.maxinc = num;
140 facetValue_.valRange.mininc = num;
143 facetValue_.valRange.minex = num;
146 facetValue_.length = num;
149 facetValue_.lenRange.minlen = num;
152 facetValue_.lenRange.maxlen = num;
155 facetValue_.tot = num;
158 facetValue_.frac = num;
164 int numFacets_=facetId_.size();
165 if(!(numFacets_!=0 && (facetId_[numFacets_ - 1] ==
ENUM)))
166 facetId_.push_back(facetType);
177 int numdigits = 1, tmp = val;
179 while ((tmp = tmp / 10))
181 for (
size_t i = 0; i < facetId_.size() && valid; i++)
186 if (val < facetValue_.valRange.maxex)
192 if (val <= facetValue_.valRange.maxinc)
199 if (val >= facetValue_.valRange.mininc)
206 if (val > facetValue_.valRange.minex)
213 if (numdigits == facetValue_.length)
220 if (numdigits >= facetValue_.lenRange.minlen)
227 if (numdigits <= facetValue_.lenRange.maxlen)
253 int strlen = val.length();
255 std::list < std::string >::const_iterator pEnums;
256 for (
size_t i = 0; i < facetId_.size(); i++)
261 if (strlen == facetValue_.length)
268 if (strlen >= facetValue_.lenRange.minlen)
275 if (strlen <= facetValue_.lenRange.maxlen)
284 for (pEnums = enumValues_.begin();
285 pEnums != enumValues_.end();
319 bool isFacetPresent =
false;
321 i < facetId_.size() && !isFacetPresent;
323 isFacetPresent = (facetId_[i] == facet);
330 val = (
void *) &(enumValues_);
334 val = &(facetValue_.valRange.maxinc);
338 val = (
void*) &(facetValue_.valRange.maxex);
342 val = (
void*) &(facetValue_.valRange.mininc);
346 val = (
void*) &(facetValue_.valRange.minex);
350 val = (
void*) &(facetValue_.length);
354 val = (
void*) &(facetValue_.lenRange.minlen);
358 val = (
void*) &(facetValue_.lenRange.minlen);
362 val = (
void*) &(facetValue_.pattern);
366 val = (
void*) &(facetValue_.tot);