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;
|