blob: 413b347ceb45a835650238b82b0807b25e147b14 [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: XSDLocator.hpp 568078 2007-08-21 11:43:25Z amassari $
*/
/**
* A Locator implementation
*/
#ifndef XSDLOCATOR_HPP
#define XSDLOCATOR_HPP
#include <xercesc/util/XMemory.hpp>
#include <xercesc/sax/Locator.hpp>
XERCES_CPP_NAMESPACE_BEGIN
class VALIDATORS_EXPORT XSDLocator: public XMemory, public Locator
{
public:
/** @name Constructors and Destructor */
//@{
/** Default constructor */
XSDLocator();
/** Destructor */
virtual ~XSDLocator()
{
}
//@}
/** @name The locator interface */
//@{
/**
* Return the public identifier for the current document event.
* <p>This will be the public identifier
* @return A string containing the public identifier, or
* null if none is available.
* @see #getSystemId
*/
virtual const XMLCh* getPublicId() const;
/**
* Return the system identifier for the current document event.
*
* <p>If the system identifier is a URL, the parser must resolve it
* fully before passing it to the application.</p>
*
* @return A string containing the system identifier, or null
* if none is available.
* @see #getPublicId
*/
virtual const XMLCh* getSystemId() const;
/**
* Return the line number where the current document event ends.
* Note that this is the line position of the first character
* after the text associated with the document event.
* @return The line number, or -1 if none is available.
* @see #getColumnNumber
*/
virtual XMLSSize_t getLineNumber() const;
/**
* Return the column number where the current document event ends.
* Note that this is the column number of the first
* character after the text associated with the document
* event. The first column in a line is position 1.
* @return The column number, or -1 if none is available.
* @see #getLineNumber
*/
virtual XMLSSize_t getColumnNumber() const;
//@}
// -----------------------------------------------------------------------
// Setter methods
// -----------------------------------------------------------------------
void setValues(const XMLCh* const systemId,
const XMLCh* const publicId,
const XMLSSize_t lineNo, const XMLSSize_t columnNo);
private :
// -----------------------------------------------------------------------
// Unimplemented constructors and destructor
// -----------------------------------------------------------------------
XSDLocator(const XSDLocator&);
XSDLocator& operator=(const XSDLocator&);
// -----------------------------------------------------------------------
// Private data members
// -----------------------------------------------------------------------
XMLSSize_t fLineNo;
XMLSSize_t fColumnNo;
const XMLCh* fSystemId;
const XMLCh* fPublicId;
};
// ---------------------------------------------------------------------------
// XSDLocator: Getter methods
// ---------------------------------------------------------------------------
inline XMLSSize_t XSDLocator::getLineNumber() const
{
return fLineNo;
}
inline XMLSSize_t XSDLocator::getColumnNumber() const
{
return fColumnNo;
}
inline const XMLCh* XSDLocator::getPublicId() const
{
return fPublicId;
}
inline const XMLCh* XSDLocator::getSystemId() const
{
return fSystemId;
}
XERCES_CPP_NAMESPACE_END
#endif