All Downloads are FREE. Search and download functionalities are using the official Maven repository.

net.sf.saxon.s9api.Location Maven / Gradle / Ivy

There is a newer version: 12.5
Show newest version
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2018-2022 Saxonica Limited
// This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
// If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
// This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

package net.sf.saxon.s9api;

import org.xml.sax.Locator;

import javax.xml.transform.SourceLocator;

/**
 * Saxon interface to represent a location, typically the location of an expression within a query
 * or stylesheet. The interface combines the two JAXP interfaces SourceLocator and Locator.
 */

public interface Location extends SourceLocator
        , Locator
{
    //Inherited methods from SourceLocator are implicit in C#

    /**
     * Get the system ID. This should be the system identifier of an XML external entity; if a stylesheet module
     * comprises multiple external entities, the distinction should be retained. This means, for example, that
     * an instruction in a stylesheet can have a different system identifier from its parent instruction. However,
     * SAX parsers only provide location information at the element level, so when part of an XPath expression
     * is in a different external entity from other parts of the same expression, this distinction is lost.
     *
     * 

The system identifier of a node is in general not the same as its base URI. The base URI is affected * by xml:base attributes; the system identifier is not.

* * @return the system ID, or null if the information is not available. */ @Override String getSystemId(); /** * Get the Public ID * * @return usually null */ @Override String getPublicId(); /** * Get the line number. This line number is relative to the external entity identified by the system identifier. * Line numbers start at 1. The value may be an approximation; SAX parsers only provide line number information * at the level of element nodes. * * @return the line number, or -1 if the information is not available. */ @Override int getLineNumber(); /** * Get the column number. This column number is relative to the line identified by the line number. * Column numbers start at 1. * * @return the column number, or -1 if the information is not available. */ @Override int getColumnNumber(); /** * Get an immutable copy of this Location object. By default Location objects may be mutable, so they * should not be saved for later use. The result of this operation holds the same location information, * but in an immutable form. * @return an immutable copy (which may be the original object, if it is already immutable) */ Location saveLocation(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy