diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index a668b999..a229362e 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -7,9 +7,9 @@
# Type
Please mention the type of PR
-* [ ]Bug Fix
-* [ ]Refactoring / Technology upgrade
-* [ ]New Feature
+* [ ] Bug Fix
+* [ ] Refactoring / Technology upgrade
+* [ ] New Feature
**Note** : Please ensure that you've read contribution [guidelines](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/docs/CONTRIBUTING.md) before raising this PR. If your PR is in progress, please prepend `[WIP]` in PR title. Your PR will be reviewed when `[WIP]` will be removed from the PR title.
diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md
index 81716697..544f0583 100644
--- a/docs/CONTRIBUTING.md
+++ b/docs/CONTRIBUTING.md
@@ -1,9 +1,9 @@
# Thanks
-I would like to thank you for your valuable time and effort and applogies if this PR is rejected due to any reason.
+I would like to thank you for your valuable time and effort and apologies if this PR is rejected due to any reason.
-This repository is written with the aim of providing high performance not in terms of speed only but comfortability of the user as well.
+This repository is written with the aim of providing high performance, not in terms of speed only, but comfortably of the user as well.
-## No rights are resserved
+## No rights are reserved
Your contribution is valuable. We try to mention your name on README with the avatar. We can't promise to pay you for your contribution.
@@ -11,7 +11,7 @@ Your contribution is valuable. We try to mention your name on README with the av
Here is the check list to publish any change
* Changes are not half implemented due to the library limitation or any other reason.
-* Changes are well discussed by raising github issue. So they are well known by other contributers and users
+* Changes are well discussed by raising github issue. So they are well known by other contributors and users
* Echoing the above point. The purpose / goal for the PR should be mentioned in the description.
* Multiple unrelated changes should not be clubbed in single PR.
* Please run perf tests `$ node benchmark\XmlParser.js` or `$ node benchmark\XmlBuilder.js` before and after the changes. And mention it in PR description.
diff --git a/docs/v3/docs.md b/docs/v3/docs.md
index acad4fcc..8aa5e90f 100644
--- a/docs/v3/docs.md
+++ b/docs/v3/docs.md
@@ -77,7 +77,7 @@ Validator returns the following object in case of error;
* **cdataTagName** : If specified, parser parse CDATA as nested tag instead of adding it's value to parent tag.
* **cdataPositionChar** : It'll help to covert JSON back to XML without losing CDATA position.
* **parseTrueNumberOnly**: if true then values like "+123", or "0123" will not be parsed as number.
-* **arrayMode** : When `false`, a tag with single occurrence is parsed as an object but as an array in case of multiple occurences. When `true`, a tag will be parsed as an array always excluding leaf nodes. When `strict`, all the tags will be parsed as array only. When instance of `RegEx`, only tags will be parsed as array that match the regex. When `function` a tag name is passed to the callback that can be checked.
+* **arrayMode** : When `false`, a tag with single occurrence is parsed as an object but as an array in case of multiple occurrences. When `true`, a tag will be parsed as an array always excluding leaf nodes. When `strict`, all the tags will be parsed as array only. When instance of `RegEx`, only tags will be parsed as array that match the regex. When `function` a tag name is passed to the callback that can be checked.
* **tagValueProcessor** : Process tag value during transformation. Like HTML decoding, word capitalization, etc. Applicable in case of string only.
* **attrValueProcessor** : Process attribute value during transformation. Like HTML decoding, word capitalization, etc. Applicable in case of string only.
* **stopNodes** : an array of tag names which are not required to be parsed. Instead their values are parsed as string.
diff --git a/docs/v4/1.GettingStarted.md b/docs/v4/1.GettingStarted.md
index a75f3ed6..1624448c 100644
--- a/docs/v4/1.GettingStarted.md
+++ b/docs/v4/1.GettingStarted.md
@@ -29,7 +29,7 @@ if(XMLValidator.validate()){
let jsonObj = parser.parse(xmlData);
const builder = new XMLBuilder();
- let samleXmlData = builder.build(jsonObj);
+ let sampleXmlData = builder.build(jsonObj);
}
```
diff --git a/docs/v4/2.XMLparseOptions.md b/docs/v4/2.XMLparseOptions.md
index 407dff35..b59f125c 100644
--- a/docs/v4/2.XMLparseOptions.md
+++ b/docs/v4/2.XMLparseOptions.md
@@ -620,7 +620,7 @@ const XMLdata = `
```
## processEntities
-Set it to `true` (default) to process default and DOCTYPE entites. Check [Entities](./5.Entities.md) section for more detail. If you don't have entities in your XML document then it is recommanded to disable it `processEntities: false` for better performance.
+Set it to `true` (default) to process default and DOCTYPE entities. Check [Entities](./5.Entities.md) section for more detail. If you don't have entities in your XML document then it is recommended to disable it `processEntities: false` for better performance.
## removeNSPrefix
Remove namespace string from tag and attribute names.
@@ -854,7 +854,7 @@ Output
}
}
```
-If the tag value consists whitespaces and `trimValues: false` then value will not be parsed even if `parseTagValue:true`. Similarly, if `trimValues: true` and `parseTagValue:false` then surrounding whitespace will be removed.
+If the tag value consists of whitespace only and `trimValues: false` then value will not be parsed even if `parseTagValue:true`. Similarly, if `trimValues: true` and `parseTagValue:false` then surrounding whitespace will be removed.
```js
const options = {
diff --git a/docs/v4/3.XMLBuilder.md b/docs/v4/3.XMLBuilder.md
index 2d640714..713b1481 100644
--- a/docs/v4/3.XMLBuilder.md
+++ b/docs/v4/3.XMLBuilder.md
@@ -54,14 +54,14 @@ const output = builder.build(cars);
To recognize attribute properties in the JS object so that they can be trimmed.
## attributesGroupName
-To recognize attribute properties group in the JS object so that they can be trimmed and can form attribute expresstion for a tag.
+To recognize attribute properties group in the JS object so that they can be trimmed and can form attribute expression for a tag.
This property is not supported when `preserveOrder: true` because attributes are already grouped.
## attributeValueProcessor
-To customize the bahaviour of parsing an attribute value to the string value. It accepts attribute name and value.
+To customize the behavior of parsing an attribute value to the string value. It accepts attribute name and value.
## cdataPropName
-To recognize CDATA properties in a JS object so that they can be transformed correcty.
+To recognize CDATA properties in a JS object so that they can be transformed correctly.
Eg
Input
@@ -113,7 +113,7 @@ Output
It is recommended to use `preserveOrder: true` when you're parsing XML to js object and building the XML back. So that the order of CDATA is maintained.
## commentPropName
-To recognize comments in a JS object so that they can be transformed correcty.
+To recognize comments in a JS object so that they can be transformed correctly.
Eg
@@ -179,7 +179,7 @@ Applicable only if `format:true` is set.
When you parse a XML using XMLParser with `preserveOrder: true`, the result JS object has different structure. So parse that structure in original XML, you should set the same option while building the XML from that js object.
## processEntities
-Set it to `true` (default) to process XML entities. Check [Entities](./5.Entities.md) section for more detail. If you don't have entities in your XML document then it is recommanded to disable it `processEntities: false` for better performance.
+Set it to `true` (default) to process XML entities. Check [Entities](./5.Entities.md) section for more detail. If you don't have entities in your XML document then it is recommended to disable it `processEntities: false` for better performance.
## oneListGroup
@@ -242,7 +242,7 @@ const options = {
const builder = new XMLBuilder(options);
const output = builder.build(result);
```
-Outout
+Output
```xml
```
@@ -268,10 +268,10 @@ Outout
## suppressUnpairedNode
-To supress an unpared tag from `
` to `
`.
+To suppress an unpaired tag from `
` to `
`.
## tagValueProcessor
-To customize the bahaviour of parsing the text value of a tag to the string value. It accepts tag name and value.
+To customize the behavior of parsing the text value of a tag to the string value. It accepts tag name and value.
## textNodeName
To recognize text value for a tag in the JS object so that they can be properly assigned to the tag.
diff --git a/docs/v4/5.Entities.md b/docs/v4/5.Entities.md
index d8c3bcd4..fd3788e6 100644
--- a/docs/v4/5.Entities.md
+++ b/docs/v4/5.Entities.md
@@ -105,7 +105,7 @@ Following attacks are possible due to entity processing
* Denial-of-Service Attacks
* Classic XXE
* Advanced XXE
-* Server-Side Requst Forgery (SSRF)
+* Server-Side Request Forgery (SSRF)
* XInclude
* XSLT
@@ -136,7 +136,7 @@ In future version of FXP, we'll be supporting more features of DOCTYPE such as `
## External Entities
-You can set external entites without using DOCTYPE.
+You can set external entities without using DOCTYPE.
```js
const xmlData = `&unknown;
last `;
diff --git a/docs/v4/7.PITags.md b/docs/v4/7.PITags.md
index 82e03e43..e261c2cd 100644
--- a/docs/v4/7.PITags.md
+++ b/docs/v4/7.PITags.md
@@ -1,4 +1,4 @@
-Processing Instructions are supported by Fast XML parser. However, they're treated as normal tags from parsing perpective. Hence, following properties are required to be set for attributes processing;
+Processing Instructions are supported by Fast XML parser. However, they're treated as normal tags from the parsing perspective. Hence, the following properties are required to be set for attributes processing;
```js
ignoreAttributes: false,
diff --git a/spec/attr_spec.js b/spec/attr_spec.js
index f8bffe2e..f70ffa1b 100644
--- a/spec/attr_spec.js
+++ b/spec/attr_spec.js
@@ -214,7 +214,7 @@ id="7" data="foo bar" bug="true"/>`;
expect(result).toEqual(expected);
});
- it("should err for invalid atributes", function() {
+ it("should err for invalid attributes", function() {
const xmlData = ``;
const expected = {
"err": {
@@ -228,21 +228,21 @@ id="7" data="foo bar" bug="true"/>`;
expect(result).toEqual(expected);
});
- it("should validate xml with atributes", function() {
+ it("should validate xml with attributes", function() {
const xmlData = `1val`;
const result = XMLValidator.validate(xmlData);
expect(result).toBe(true);
});
- it("should validate xml atribute has '>' in value", function() {
+ it("should validate xml attribute has '>' in value", function() {
const xmlData = `1val`;
const result = XMLValidator.validate(xmlData);
expect(result).toBe(true);
});
- it("should not validate xml with invalid atributes", function() {
+ it("should not validate xml with invalid attributes", function() {
const xmlData = ``;
expect(result).toEqual(expected);
});
- it("should validate xml with attributeshaving openquote in value", function () {
+ it("should validate xml with attributes having open quote in value", function () {
const xmlData = "";
const expected = {
"err": {
diff --git a/spec/entities_spec.js b/spec/entities_spec.js
index 8c963f6a..41ef08af 100644
--- a/spec/entities_spec.js
+++ b/spec/entities_spec.js
@@ -255,7 +255,7 @@ describe("XMLParser Entities", function() {
expect(result).toEqual(expected);
});
- it("should build by decoding defaul entities", function() {
+ it("should build by decoding default entities", function() {
const jsObj = {
"note": {
"@heading": "Reminder > \"Alert",
@@ -283,7 +283,7 @@ describe("XMLParser Entities", function() {
const result = builder.build(jsObj);
expect(result.replace(/\s+/g, "")).toEqual(expected.replace(/\s+/g, ""));
});
- it("should build by decoding defaul entities in prserve mode", function() {
+ it("should build by decoding default entities in preserve mode", function() {
const jsObj = [
{
"note": [
@@ -438,7 +438,7 @@ describe("XMLParser Entities", function() {
});
});
-describe("XMLParser External Entites", function() {
+describe("XMLParser External Entities", function() {
it("should throw error when an entity value has '&'", function() {
const parser = new XMLParser();
expect( () => {
@@ -471,7 +471,7 @@ describe("XMLParser External Entites", function() {
expect(result.note).toEqual(`&unknown;\r\nlast`);
});
- it("External Entity can change the behaviour of default entites", function() {
+ it("External Entity can change the behavior of default entities", function() {
const xmlData = `>last `;
const parser = new XMLParser();
@@ -493,7 +493,7 @@ describe("XMLParser External Entites", function() {
expect(result.note).toEqual(`>
, , ?>
diff --git a/spec/transform_tagname_spec.js b/spec/transform_tagname_spec.js
index 73ddebfe..af6ddc3b 100644
--- a/spec/transform_tagname_spec.js
+++ b/spec/transform_tagname_spec.js
@@ -3,7 +3,7 @@
const {XMLParser} = require("../src/fxp");
describe("XMLParser", function() {
- it("should parse lowercase tagnames", function() {
+ it("should parse lowercase tag names", function() {
const xmlData = `
Person 1
diff --git a/spec/unpairedTags_spec.js b/spec/unpairedTags_spec.js
index ff5c1f82..cd88a6c8 100644
--- a/spec/unpairedTags_spec.js
+++ b/spec/unpairedTags_spec.js
@@ -147,7 +147,7 @@ describe("unpaired and empty tags", function() {
expect(output.replace(/\s+/g, "")).toEqual(expectedXml.replace(/\s+/g, ""));
});
- it("should supress paired tag but not unpaired tag when suppressUnpairedNode:false", function() {
+ it("should suppress paired tag but not unpaired tag when suppressUnpairedNode:false", function() {
const xmlData = `
value
@@ -211,7 +211,7 @@ describe("unpaired and empty tags", function() {
expect(output.replace(/\s+/g, "")).toEqual(expectedXmlData.replace(/\s+/g, ""));
});
- it("should supress paired tag but not unpaired tag when suppressUnpairedNode:false (ordered)", function() {
+ it("should suppress paired tag but not unpaired tag when suppressUnpairedNode:false (ordered)", function() {
const xmlData = `
value
diff --git a/spec/validator_spec.js b/spec/validator_spec.js
index 0df37518..ea07bc14 100644
--- a/spec/validator_spec.js
+++ b/spec/validator_spec.js
@@ -443,7 +443,7 @@ describe("XML Validator with options", function () {
validate(``,
{InvalidTag: "Expected closing tag 'extra' (opened in line 1, col 9) instead of closing tag 'parent'."}, 1, 16));
- it('- Maarked Unpaired tags', () =>{
+ it('- Marked Unpaired tags', () =>{
const result = XMLValidator.validate(``, {
unpairedTags: ["extra"]
});
diff --git a/src/fxp.d.ts b/src/fxp.d.ts
index ada4502a..835e44ce 100644
--- a/src/fxp.d.ts
+++ b/src/fxp.d.ts
@@ -387,10 +387,10 @@ export class XMLParser {
parse(xmlData: string | Buffer ,validationOptions?: validationOptions | boolean): any;
/**
* Add Entity which is not by default supported by this library
- * @param entityIndentifier {string} Eg: 'ent' for &ent;
+ * @param entityIdentifier {string} Eg: 'ent' for &ent;
* @param entityValue {string} Eg: '\r'
*/
- addEntity(entityIndentifier: string, entityValue: string): void;
+ addEntity(entityIdentifier: string, entityValue: string): void;
}
export class XMLValidator{