diff --git a/docs/Document.md b/docs/Document.md new file mode 100644 index 0000000..e675785 --- /dev/null +++ b/docs/Document.md @@ -0,0 +1,243 @@ +# Document +A copy of the Document class from `libxmljs` with extra methods and existing ones modified. + +## Constructor +### new Document(source = null, type = Document.TYPE_XML, options = null); +>Creates a new `Document`. + +>**args** +*source*: `string` (optional) - The source as a string. +*type*: `number` (optional) - The type of the `Document`. +*options*: `libxmls.ParserOptions` (optional) - The parser options. + + +## Properties + +### static TYPE_XML: `number` +>Describe the `Document` as an XML document. + +>**value** +0 + + +### static TYPE_HTML: `number` +>Describe the `Document` as an HTML document. + +>**value** +1 + + +### static TYPE_HTML_FRAGMENT: `number` +>Describe the `Document` as an HTML fragment. + +>**value** +2 + + +### _original: `libxmljs.Document|null` +>The internal `libxmljs.Document` instance. + + +### _hasContent: `boolean` +>Tells whether the `Document` has content. + + +### namespace: `object|null` +>The object that holds the namespace information. + + +### errors: `SyntaxError[]` +>An array containing the errors in the current `Document`. + + +### validationErrors: `ValidationError[]|undefined` +>An array containing the validation errors in the current `Document`. + + +## Methods + +### child(idx): `libxmljs.Element|null` +>Gets the idxth child of the root node. + +>**args** +*idx*: `number` - The child index. + +>**returns** A `libxmljs.Element` or `null`. + +### childNodes(): `libxmljs.Element[]` +>Gets all the children of the root node. + +>**returns** An array of `libxmljs.Element`s. + + +### count(xpath): `number` +>Counts the amount of results of the provided XPath. + +>**args** +*xpath*: `string` - The XPath to count. + +>**returns** The amount of results. + + +### encoding(): `string` +>Gets the `Document`'s encoding. + +>**returns** The `Document`'s encoding. + + +### encoding(enc): `Document` +>Sets the `Document`'s encoding. + +>***args** +*enc*: `string` - The encoding as a string. + +>**returns** The `Document`. + + +### find(xpath): `libxmljs.Element[]` +>Finds the result of the provided XPath. + +>**args** +*xpath*: `string` - The XPath to find. + +>**returns** An array of `libxmljs.Element`s. + + +### fromHtml(html, options = {}): `Document` +>Parses an HTML document. + +>**args** +*html*: `string` - The HTML content. +*options*: `libxmljs.ParserOptions` (optional) - The parser options. + +>**returns** The `Document`. + + +### fromHtmlFragment(htmlFragment, options = {}): `Document` +>Parses an HTML fragment. + +>**args** +*htmlFragment*: `string` - The HTML content. +*options*: `libxmljs.ParserOptions` (optional) - The parser options. + +>**returns** The `Document`. + + +### fromXml(xml, options = {}): `Document` +>Parses an XML document. + +>**args** +*xml*: `string` - The XML content. +*options*: `libxmljs.ParserOptions` (optional) - The parser options. + +>**returns** The `Document`. + + +### get(xpath): `libxmljs.Element` +>Gets the first result of the provided XPath. + +>**args** +*xpath*: `string` - The XPath to get. + +>**returns** A `libxmljs.Element`. + + +### getDtd(): `object` +>Gets the `Document`'s DTD. + +>**returns** The DTD object. + + +### namespaces(): `libxmljs.Namespace[]` +>Gets the `Document`'s namespaces. + +>**returns** An array of `libxmljs.Namespace`s. + + +### node(name, content): `libxmljs.Node` +>Creates the root. + +>**args** +*name*: `string` - The root's tag name. +*content*: `string` - The root's text content. + +>**returns** The created `libxmljs.Node`. + + +### rngValidate(rng): `boolean` +>Checks whether the `Document` is valid using Relax NG. + +>**args** +*rng*: `object` - The Relax NG. + +>**returns** Whether the `Document` is valid using Relax NG. + + +### root(): `libxmljs.Element|null` +>Gets the root. + +>**returns** The root or `null`. + + +### root(node): `libxmljs.Element` +>Sets the root. + +>**args** +*node*: `libxmljs.Element` - The root `libxmljs.Element`. + +>**returns** The created `libxmljs.Element`. + + +### setDtd(name, ext, sys): `Document` +>Sets the `Document`'s DTD. + +>**args** +*name*: `string` - The name of the DTD. +*ext*: `string` - The external ID for the DTD. +*sys*: `string` - The system ID for the DTD. + +>**returns** The `Document`. + + +### setNamespace(alias, url): `Document` +>Sets the `Document`'s namespace. + +>**args** +*alias*: `string` - The alias of the namespace. +*url*: `string` - The URL of the namespace. + +>**returns** The `Document`. + + +### toString(formatting = true): `string` +>Returns the `Document` as a string. + +>**args** +*formatting*: `boolean` (optional) - Tells whether the ouput is formatted. + +>**returns** The `Document` as a string. + + +### type(): `string` +>Returns the string "document". + +>**returns** "document". + + +### validate(xsdDoc): `boolean` +>Validates the `Document` against a XSD document. + +>**args** +*xsdDoc*: `Document` - The XSD `Document`. + +>**returns** Whether the `Document` is valid. `validationErrors` contains the errors if any. + + +### version(): `string` +>Gets the `Document`'s version. + +>**returns** The `Document`'s version. + + +### assertNoContentError(): `void` +>Throws an error if the `Document` has no content. diff --git a/src/Document.js b/src/Document.js index 6fd90de..254d002 100644 --- a/src/Document.js +++ b/src/Document.js @@ -73,7 +73,7 @@ /** * Gets the idxth child of the root node. - * @param {number} idx + * @param {number} idx The child index. * @returns {libxmljs.Element|null} A `libxmljs.Element` or `null`. */ child(idx) { @@ -86,7 +86,7 @@ /** * Gets all the children of the root node. - * @returns {Element[]} An array of `libxmljs.Element`s. + * @returns {libxmljs.Element[]} An array of `libxmljs.Element`s. */ childNodes() { this.assertNoContentError(); @@ -115,7 +115,8 @@ /** * Sets the `Document`'s encoding. - * @returns {string} The `Document`. + * @param {string} enc The encoding as a string. + * @returns {Document} The `Document`. */ encoding(enc) { this._original.encoding(enc); @@ -266,10 +267,12 @@ * @param {string} name The name of the DTD. * @param {string} ext The external ID for the DTD. * @param {string} sys The system ID for the DTD. - * @returns {void} + * @returns {Document} The `Document`. */ setDtd(name, ext, sys) { - return this._original.setDtd(name, ext, sys); + this._original.setDtd(name, ext, sys); + + return this; } /** @@ -293,7 +296,7 @@ /** * Returns the `Document` as a string. - * @param {boolean} formatting Tells whether the ouput is formatted. + * @param {boolean} [formatting] Tells whether the ouput is formatted. * @returns {string} The `Document` as a string. */ toString(formatting = true) {