blob: 5c1e2f25ddec530bfaf238636f8cb9d0b983c107 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* $Id: PSVIElement.cpp 568078 2007-08-21 11:43:25Z amassari $
*/
#include <xercesc/framework/psvi/PSVIElement.hpp>
#include <xercesc/framework/psvi/XSElementDeclaration.hpp>
#include <xercesc/framework/psvi/XSComplexTypeDefinition.hpp>
#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
XERCES_CPP_NAMESPACE_BEGIN
PSVIElement::PSVIElement(MemoryManager* const manager):
PSVIItem(manager),
fElementDecl(0),
fNotationDecl(0),
fSchemaInfo(0)
{
}
PSVIElement::~PSVIElement()
{
fMemoryManager->deallocate(fCanonicalValue);
}
XSTypeDefinition* PSVIElement::getTypeDefinition()
{
return fType;
}
/**
* If and only if that type definition is a simple type definition
* with {variety} union, or a complex type definition whose {content type}
* is a simple type definition with {variety} union,
* then an item isomorphic
* to that member of the union's {member type definitions} which actually
* validated the element item's normalized value.
*
* @return a simple type declaration
*/
XSSimpleTypeDefinition* PSVIElement::getMemberTypeDefinition()
{
return fMemberType;
}
void PSVIElement::reset( const VALIDITY_STATE validityState
, const ASSESSMENT_TYPE assessmentType
, const XMLCh* const validationContext
, bool isSpecified
, XSElementDeclaration* const elemDecl
, XSTypeDefinition* const typeDef
, XSSimpleTypeDefinition* const memberType
, XSModel* const schemaInfo
, const XMLCh* const defaultValue
, const XMLCh* const normalizedValue
, XMLCh* const canonicalValue
, XSNotationDeclaration* const notationDecl)
{
fValidationContext = validationContext;
fValidityState = validityState;
fAssessmentType = assessmentType;
fIsSpecified = isSpecified;
fType = typeDef;
fMemberType = memberType;
fElementDecl = elemDecl;
fNotationDecl = notationDecl;
fSchemaInfo = schemaInfo;
fDefaultValue = defaultValue;
fNormalizedValue = normalizedValue;
fMemoryManager->deallocate(fCanonicalValue);
fCanonicalValue = canonicalValue;
}
XERCES_CPP_NAMESPACE_END