| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 | /** * Copyright (C) 2016-2019 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 XmlComment, { IXmlCommentOptions } from "./XmlComment";import XmlDtdAttlist, { IXmlDtdAttlistOptions } from "./XmlDtdAttlist";import XmlDtdElement, { IXmlDtdElementOptions } from "./XmlDtdElement";import XmlDtdEntity, { IXmlDtdEntityOptions } from "./XmlDtdEntity";import XmlDtdNotation, { IXmlDtdNotationOptions } from "./XmlDtdNotation";import { default as XmlDtdParamEntityRef, IXmlDtdParamEntityRefOptions } from "./XmlDtdParamEntityRef";import XmlProcInst, { IXmlProcInstOptions } from "./XmlProcInst";/** * The options used to create a new document type definition. */export interface IXmlDtdOptions {    /**     * The name of the DTD.     */    name: string;    /**     * The system identifier of the DTD, excluding quotation marks. By default,     * no system identifier is included.     */    sysId?: string;    /**     * The public identifier of the DTD, excluding quotation marks. If a public     * identifier is provided, a system identifier must be provided as well.     * By default, no public identifier is included.     */    pubId?: string;}/** * Represents an XML document type definition (DTD). * * A document type definition  is structured as follows, where `{name}` is * the name of the DTD, `{sysId}` is the system identifier of the DTD, * `{pubId}` is the public identifier of the DTD, and `{intSubset}` is the * internal subset of the DTD: * * ```xml * <!DOCTYPE {name} SYSTEM "{sysId}" PUBLIC "{pubId}" [ *     {intSubset} * ]> * ``` * * DTDs can have an unlimited number of comments, attribute-list declarations, * element declarations, entity declarations, notation declarations, parameter * entity references, and processing instructions. */export default class XmlDtd<Parent> {    private readonly _children;    private readonly _parent;    private _name;    private readonly _validation;    private _pubId;    private _sysId;    constructor(parent: Parent, validation: boolean, options: IXmlDtdOptions);    /**     * Gets the name of the DTD.     */    get name(): string;    /**     * Sets the name of the DTD.     */    set name(name: string);    /**     * Gets the public identifier of the DTD.     */    get pubId(): string | undefined;    /**     * Sets the public identifier of the DTD.     */    set pubId(pubId: string | undefined);    /**     * Gets the system identifier of the DTD.     */    get sysId(): string | undefined;    /**     * Sets the system identifier of the DTD.     */    set sysId(sysId: string | undefined);    /**     * Adds an attribute-list declaration to this document type declaration     * and returns the new attribute-list declaration.     */    attlist(options: IXmlDtdAttlistOptions): XmlDtdAttlist<this>;    /**     * Adds a comment to this document type declaration and returns the     * new comment.     */    comment(options: IXmlCommentOptions): XmlComment<this>;    /**     * Adds an element declaration to this document type declaration     * and returns the new element declaration.     */    element(options: IXmlDtdElementOptions): XmlDtdElement<this>;    /**     * Adds an entity declaration to this document type declaration     * and returns the new entity declaration.     */    entity(options: IXmlDtdEntityOptions): XmlDtdEntity<this>;    /**     * Adds a notation declaration to this document type declaration     * and returns the new notation declaration.     */    notation(options: IXmlDtdNotationOptions): XmlDtdNotation<this>;    /**     * Adds a parameter entity reference to this document type declaration     * and returns the new parameter entity reference.     */    paramEntityRef(options: IXmlDtdParamEntityRefOptions): XmlDtdParamEntityRef<this>;    /**     * Adds a processing instruction to this document type declaration     * and returns the new processing instruction.     */    procInst(options: IXmlProcInstOptions): XmlProcInst<this>;    /**     * Returns an XML string representation of this document type declaration.     */    toString(options?: IStringOptions): string;    /**     * Returns the parent of this attribute.     */    up(): Parent;    /**     * Appends the XML string representation of a public or system identifier     * to an existing string.     */    private appendId;}/** * Returns true if the specified public identifier only contains characters * permitted by the XML specification. */export declare function validatePubId(str: string): boolean;
 |