/** * Copyright (C) 2016 Michael Kourlas * * Licensed 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. */ import { IStringOptions } from "../options"; import XmlNode from "./XmlNode"; /** * Represents an XML character reference. * * An XML character reference is structured as follows, where `{dec}` is the * decimal representation code point corresponding to a particular Unicode * character: * * ```xml * &#{dec}; * ``` * * The corresponding hexadecimal version is structured as follows, where * `{hex}` is the hexadecimal representation code point corresponding to a * particular Unicode character: * * ```xml * &#x{hex}; * ``` * * Unicode characters outside of the Basic Multilingual Plane are represented * using a surrogate pair consisting of two character references. * * The `{dec}` and `{hex}` values are defined by the `char` and `hex` * properties of this node; the former is the character to be represented while * the latter indicates whether the decimal or hexadecimal representation * should be used. * * XmlCharRef nodes cannot have any children. */ export default class XmlCharRef extends XmlNode { private _char; private _hex; /** * Initializes a new instance of the {@link XmlCharRef} class. * * @param char The character to represent using the reference. * @param hex Whether to use the hexadecimal or decimal representation for * the reference. If left undefined, decimal is the default. */ constructor(char: string, hex?: boolean); /** * Gets the character to represent using the reference. * * @returns The character to represent using the reference. */ /** * Sets the character to represent using the reference. * * @param char The character to represent using the reference. */ char: string; /** * Gets whether or not to use the hexadecimal or decimal representation for * the reference. * * @returns Whether or not to use the hexadecimal or decimal representation * for the reference. */ /** * Sets whether or not to use the hexadecimal or decimal representation for * the reference. * * @param hex Whether or not to use the hexadecimal or decimal * representation for the reference. */ hex: boolean; /** * Throws an exception since {@link XmlCharRef} nodes cannot have any * children. * * @returns This method does not return. */ children(): XmlNode[]; /** * Throws an exception since {@link XmlCharRef} nodes cannot have any * children. * * @param node This parameter is unused. * @param index This parameter is unused. * * @returns This method does not return. */ insertChild(node: XmlNode, index?: number): XmlNode | undefined; /** * Throws an exception since {@link XmlCharRef} nodes cannot have any * children. * * @param node This parameter is unused. * * @returns This method does not return. */ removeChild(node: XmlNode): boolean; /** * Throws an exception since {@link XmlCharRef} nodes cannot have any * children. * * @param index This parameter is unused. * * @returns This method does not return. */ removeChildAtIndex(index: number): XmlNode; /** * Returns an XML string representation of this node. * * @param options Formatting options for the string representation. * * @returns {string} An XML string representation of this node. */ toString(options?: IStringOptions): string; }