{
	"analyze-string" :
	{
		"attributes" : 
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"regex" :
			{
				"type" : "string",
				"insert" : "regex=\"#string#\""
			},
			"flags" :
			{
				"type" : "string",
				"insert" : "flags=\"#string#\""
			}
		},
		"members" :
		[
		  "matching-substring", "non-matching-substring", "fallback"
		]
	},
	"apply-imports" : 
	{
		"members" :
		[
		  "with-param"
		]
	},
	"apply-templates" : 
	{
		"attributes" : 
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"mode" :
			{
				"type" : "token",
				"insert" : "mode=\"#token#\""
			}
		},
		"members" :
		[
			"sort","with-param"
		]
	},
	"attribute" :
	{
		"attributes" : 
		{
		   "name" :
		   {
				"type" : "qname",
				"insert" : "name=\"#qname#\""
		   },
		   "namespace" :
		   {
				"type" : "uri",
				"insert" : "namespace=\"#uri#\""
		   },
		   "select" :
		   {
		        "type" : "expression",
				"insert" : "select=\"#expression#\""
		   },
		   "separator" :
		   {
				"type" : "string",
				"insert" : "separator=\"#string#\""
		   },
		   "type" :
		   {
				"type" : "qname",
				"insert" : "type=\"#qname#\""
		   },
		   "validation" :
		   {
				"type" : "enum",
				"insert" : "validation=\"##\"",
				"values" : 
				[
				  "strict", "lax", "preserve", "strip"
				]
		   }
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"attribute-set" :
	{
		"attributes" : 
		{
		    "name" :
		    {
				"type" : "qname",
				"insert" : "name=\"#qname#\""
		    },
			"use-attribute-sets" :
			{
			    "type" : "qnames",
				"insert" : "use-attribute-sets=\"#qnames#\""
			}
		},
		"members" :
		[
			"attribute"
		]
	},
	"call-template" :
	{
		"attributes" :
		{
		    "name" :
		    {
				"type" : "qname",
				"insert" : "name=\"#qname#\""
		    }
		},
		"members" :
		[
			"with-params"
		]
	},
	"character-map" :
	{
		"attributes" :
		{
		    "name" :
		    {
				"type" : "qname",
				"insert" : "name=\"#qname#\""
		    },
			"use-character-maps" :
			{
			    "type" : "qnames",
				"insert" : "use-attribute-sets=\"#qnames#\""
			}
		},
		"members" :
		[
			"output-character"
		]
	},
	"choose" :
	{
		"members" :
		[
			"when", "otherwise"
		]
	},
	"comment" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"sequence"
		]
	},
	"copy" :
	{
		"attributes" :
		{
			"copy-namespaces" :
			{
				"type" : "enum",
				"insert" : "copy-namespaces=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"inherit-namespaces" :
			{
				"type" : "enum",
				"insert" : "inherit-namespaces=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"use-attribute-sets" :
			{
			    "type" : "qnames",
				"insert" : "use-attribute-sets=\"#qnames#\""
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"copy-of" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"copy-namespaces" :
			{
				"type" : "enum",
				"insert" : "copy-namespaces=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"type" :
			{
				"type" : "qname",
				"insert" : "type=\"#qname#\""
			},
			"validation" :
			{
				"type" : "enum",
				"insert" : "validation=\"##\"",
				"values" :
				[
					"strict", "lax", "preserve", "strip"
				]
			}
		}
	},
	"decimal-format" :
	{
		"attributes" :
		{
			"name" : 
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"decimal-separator" :
			{
				"type" : "char",
				"insert" : "decimal-separator=\"#char#\""
			},
			"grouping-separator" :
			{
				"type" : "char",
				"insert" : "grouping-separator=\"#char#\""
			},
			"infinity" : 
			{
				"type" : "string",
				"insert" : "infinity=\"#string#\""
			},
			"minus-sign" : 
			{
				"type" : "char",
				"insert" : "minus-sign=\"#char#\""
			},
			"NAN" : 
			{
				"type" : "string",
				"insert" : "NAN=\"#string#\""
			},
			"percent" : 
			{
				"type" : "char",
				"insert" : "percent=\"#char#\""
			},
			"per-mille" : 
			{
				"type" : "char",
				"insert" : "per-mille=\"#char#\""
			},
			"zero-digit" : 
			{
				"type" : "char",
				"insert" : "zero-digit=\"#char#\""
			},
			"digit" : 
			{
				"type" : "char",
				"insert" : "digit=\"#char#\""
			},
			"pattern-separator" :
			{
				"type" : "char",
				"insert" : "pattern-separator=\"#char#\""
			}
		}
	},
	"document" :
	{
		"attributes" :
		{
			"validation" :
			{
				"type" : "enum",
				"insert" : "validation=\"##\"",
				"values" :
				[
					"strict", "lax", "preserve", "strip"
				]
			},
			"type" :
			{
				"type" : "qname",
				"insert" : "type=\"#qname#\""
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"element" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"namespace" :
			{
				"type" : "uri",
				"insert" : "namespace=\"#uri#\""
			},
			"inherit-namespace" :
			{
				"type" : "enum",
				"insert" : "inherit-namespace=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"use-attribute-sets" :
			{
				"type" : "qnames",
				"insert" : "use-attribute-sets=\"#qnames#\""
			},
			"type" :
			{
				"type" : "qname",
				"insert" : "type=\"#qname#\""
			},
			"validation" :
			{
				"type" : "enum",
				"insert" : "validation=\"##\"",
				"values" :
				[
					"strict", "lax", "preserve", "strip"
				]
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]	
	},
	"fallback" :
	{
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]	
	},
	"for-each" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"sort", 
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]	
	},
	"for-each-group" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"group-by" :
			{
				"type" : "expression",
				"insert" : "group-by=\"#expression#\""
			},
			"group-adjacent" :
			{
				"type" : "expression",
				"insert" : "group-adjacent=\"#expression#\""
			},
			"group-starting-with" :
			{
				"type" : "pattern",
				"insert" : "group-starting-with=\"#pattern#\""
			},
			"group-ending-with" :
			{
				"type" : "pattern",
				"insert" : "group-ending-with=\"#pattern#\""
			},
			"collation" :
			{
				"type" : "uri",
				"insert" : "collation=\"#uri#\""
			}
		},
		"members" :
		[
			"sort", 
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]	
	},
	"function" :
	{
		"attributes" :
		{
			"name" : 
			{
				"type" : "qname",
				"insert" : "name=\"##\""
			},
			"as" :
			{
				"type" : "sequence-type",
				"insert" : "as=\"#sequence-type#\""
			},
			"override" :
			{
				"type" : "enum",
				"insert" : "override=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"param", 
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"if" :
	{
		"attributes" :
		{
			"test" : 
			{
				"type" : "expression",
				"insert" : "test=\"#expression#\""
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"import" :
	{
		"attributes" :
		{
			"href" : 
			{
				"type" : "uri",
				"insert" : "href=\"#uri#\""
			}
		}
	},
	"import-schema" :
	{
		"attributes" :
		{
			"namespace" : 
			{
				"type" : "uri",
				"insert" : "namespace=\"#uri#\""
			},
			"schema-location" : 
			{
				"type" : "uri",
				"insert" : "schema-location=\"#uri#\""
			}
		},
		"members" :
		[
			"schema"
		]
	},
	"include" :
	{
		"attributes" :
		{
			"href" : 
			{
				"type" : "uri",
				"insert" : "namespace=\"#uri#\""
			}
		}
	},
	"key" :
	{
		"attributes" :
		{
			"name" : 
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"match" :
			{
				"type" : "pattern",
				"insert" : "match=\"#pattern#\""
			},
			"use" :
			{
				"type" : "expression",
				"insert" : "use=\"#expression#\""
			},
			"collation" :
			{
				"type" : "uri",
				"insert" : "collation=\"#uri#\""
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"matching-substring" :
	{
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"message" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"terminate" :
			{
				"type" : "enum",
				"insert" : "terminate=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"namespace" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "ncname",
				"insert" : "name=\"#ncname#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"namespace-alias" :
	{
		"attributes" :
		{
			"stylesheet-prefix" :
			{
				"type" : "prefix",
				"insert" : "stylesheet-prefix=\"#prefix#\"",
				"values" :
				[
					"\"#default\""
				]
			},
			"result-prefix" :
			{
				"type" : "prefix",
				"insert" : "result-prefix=\"#prefix#\"",
				"values" :
				[
					"\"#default\""
				]
			}
		}
	},
	"next-match" :
	{
		"members" :
		[
			"with-param", "fallback"
		]
	},
	"non-matching-substring" :
	{
		"members" :
		[
			"document","element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"number" :
	{
		"attributes" :
		{
			"value" :
			{
				"type" : "expression",
				"insert" : "value=\"#expression#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"level" :
			{
				"type" : "enum",
				"insert" : "level=\"##\"",
				"values" :
				[
					"single", "multiple","any"
				]
			},
			"count" :
			{
				"type" : "pattern",
				"insert" : "count=\"#pattern#\""
			},
			"from" :
			{
				"type" : "pattern",
				"insert" : "from=\"#pattern#\""
			},
			"format" :
			{
				"type" : "string",
				"insert" : "format=\"#string#\""
			},
			"lang" :
			{
				"type" : "nmtoken",
				"insert" : "lang=\"#nmtoken#\""
			},
			"letter-value" :
			{
				"type" : "enum",
				"insert" : "letter-value=\"##\"",
				"values" :
				[
					"alphabetic", "traditional"
				]
			},
			"ordinal" :
			{
				"type" : "string",
				"insert" : "ordinal=\"#string#\""
			},
			"grouping-separator" :
			{
				"type" : "char",
				"insert" : "grouping-separator=\"#char#\""
			},
			"grouping-size" :
			{
				"type" : "number",
				"insert" : "grouping-size=\"#number#\""
			}
		}
	},
	"otherwise" :
	{
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"output" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"method" :
			{
				"type" : "enum",
				"insert" : "method=\"##\"",
				"values" :
				[
					"xml", "html", "xhtml", "text"
				]
			},
			"byte-order-mark" :
			{
				"type" : "enum",
				"insert" : "byte-order-mark=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"cdata-section-elements" :
			{
				"type" : "qnames",
				"insert" : "cdata-section-elements=\"#qnames#\""
			},
			"doctype-public" :
			{
				"type" : "string",
				"insert" : "doctype-public=\"#string#\""
			},
			"doctype-system" :
			{
				"type" : "string",
				"insert" : "doctype-system=\"#string#\""
			},
			"encoding" :
			{
				"type" : "string",
				"insert" : "encoding=\"#string#\""
			},
			"escape-uri-attributes" :
			{
				"type" : "enum",
				"insert" : "escape-uri-attributes=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"include-content-type" :
			{
				"type" : "enum",
				"insert" : "include-content-type=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"indent" :
			{
				"type" : "enum",
				"insert" : "indent=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"media-type" :
			{
				"type" : "string",
				"insert" : "media-type=\"#string#\""
			},
			"normalization-form" :
			{
				"type" : "enum",
				"insert" : "normalization-form=\"##\"",
				"values" :
				[
					"NFC", "NFD", "NFKC", "NFKD", "fully-normalized", "none", "nmtoken"
				]
			},
			"omit-xml-declaration" :
			{
				"type" : "enum",
				"insert" : "omit-xml-declaration=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"standalone" :
			{
				"type" : "enum",
				"insert" : "standalone=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"undeclare-prefixes" :
			{
				"type" : "enum",
				"insert" : "undeclare-prefixes=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"use-character-maps" :
			{
				"type" : "qnames",
				"insert" : "use-character-maps=\"#qnames#\""
			},
			"version" :
			{
				"type" : "nmtoken",
				"insert" : "version=\"#nmtoken#\""
			}
		}
	},
	"output-character" :
	{
		"attributes" :
		{
			"character" :
			{
				"type" : "char",
				"insert" : "character=\"#char#\""
			},
			"string" :
			{
				"type" : "string",
				"insert" : "string=\"#string#\""
			}
		}
	},
	"param" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"as" :
			{
				"type" : "sequnence-type",
				"insert" : "as=\"##\""
			},
			"required" :
			{
				"type" : "enum",
				"insert" : "required=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"tunnel" :
			{
				"type" : "enum",
				"insert" : "tunnel=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"perform-sort" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"sort", 
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"preserve-space" :
	{
		"attributes" :
		{
			"elements" :
			{
				"type" : "tokens",
				"insert" : "elements=\"#tokens#\""
			}
		}
	},
	"processing-instruction" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "ncname",
				"insert" : "name=\"#ncname#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"result-document" :
	{
		"attributes" :
		{
			"format" :
			{
				"type" : "qname",
				"insert" : "format=\"#qname#\""
			},
			"href" :
			{
				"type" : "uri",
				"insert" : "href=\"#uri#\""
			},
			"validation" :
			{
				"type" : "enum",
				"insert" : "validation=\"##\"",
				"values" :
				[
					"strict", "lax", "preserve", "strip"
				]
			},
			"type" :
			{
				"type" : "qname",
				"insert" : "type=\"#qname#\""
			},
			"method" :
			{
				"type" : "enum",
				"insert" : "method=\"##\"",
				"values" :
				[
					"xml", "html", "xhtml", "text", "qname"
				]
			},
			"byte-order-mark" :
			{
				"type" : "enum",
				"insert" : "byte-order-mark=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"cdata-section-elements" :
			{
				"type" : "qnames",
				"insert" : "cdata-section-elements=\"#qnames#\""
			},
			"doctype-public" :
			{
				"type" : "string",
				"insert" : "doctype-public=\"#string#\""
			},
			"doctype-system" :
			{
				"type" : "string",
				"insert" : "doctype-system=\"#string#\""
			},
			"encoding" :
			{
				"type" : "string",
				"insert" : "encoding=\"#string#\""
			},
			"escape-uri-attributes" :
			{
				"type" : "enum",
				"insert" : "escape-uri-attributes=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"include-content-type" :
			{
				"type" : "enum",
				"insert" : "include-content-type=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"indent" :
			{
				"type" : "enum",
				"insert" : "indent=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"media-type" :
			{
				"type" : "string",
				"insert" : "media-type=\"#string#\""
			},
			"normalization-form" :
			{
				"type" : "enum",
				"insert" : "normalization-form=\"##\"",
				"values" :
				[
					"NFC", "NFD", "NFKC", "NFKD", "fully-normalized", "none", "nmtoken"
				]
			},
			"omit-xml-declaration" :
			{
				"type" : "enum",
				"insert" : "omit-xml-declaration=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"standalone" :
			{
				"type" : "enum",
				"insert" : "standalone=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"undeclare-prefixes" :
			{
				"type" : "enum",
				"insert" : "undeclare-prefixes=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"use-character-maps" :
			{
				"type" : "qnames",
				"insert" : "use-character-maps=\"#qnames#\""
			},
			"output-version" :
			{
				"type" : "nmtoken",
				"insert" : "output-version=\"#nmtoken#\""
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"sequence" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			}
		},
		"members" :
		[
			"fallback"
		]
	},
	"sort" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"lang" :
			{
				"type" : "nmtoken",
				"insert" : "lang=\"#nmtoken#\""
			},
			"order" :
			{
				"type" : "enum",
				"insert" : "order=\"#nmtoken#\"",
				"values" :
				[
					"ascending", "descending"
				]
			},
			"collation" :
			{
				"type" : "uri",
				"insert" : "collation=\"#uri#\""
			},
			"stable" :
			{
				"type" : "enum",
				"insert" : "stable=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			},
			"case-order" :
			{
				"type" : "enum",
				"insert" : "case-order=\"##\"",
				"values" :
				[
					"upper-first", "lower-first"
				]
			},
			"data-type" :
			{
				"type" : "enum",
				"insert" : "data-type=\"##\"",
				"values" :
				[
					"text", "number", "qname"
				]
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"strip-space" :
	{
		"attributes" :
		{
			"elements" :
			{
				"type" : "tokens",
				"insert" : "elements=\"#tokens#\""
			}
		}
	},
	"stylesheet" :
	{
		"attributes" :
		{
			"id" :
			{
				"type" : "id",
				"insert" : "id=\"#id#\""
			},
			"extension-element-prefixes" :
			{
				"type" : "tokens",
				"insert" : "extension-element-prefixes=\"#tokens#\""
			},
			"exclude-result-prefixes" :
			{
				"type" : "tokens",
				"insert" : "exclude-result-prefixes=\"#tokens#\""
			},
			"version" :
			{
				"type" : "number",
				"insert" : "version=\"#number#\""
			},
			"xpath-default-namespace" :
			{
				"type" : "uri",
				"insert" : "xpath-default-namespace=\"#uri#\""
			},
			"default-validation" :
			{
				"type" : "enum",
				"insert" : "default-validation=\"##\"",
				"values" :
				[
					"preserve", "strip"
				]
			},
			"default-collation" :
			{
				"type" : "uri-list",
				"insert" : "default-validation=\"#uri-list#\""
			},
			"input-type-annotations" :
			{
				"type" : "enum",
				"insert" : "input-type-annotations=\"##\"",
				"values" :
				[
					"preserve", "strip", "unspecified"
				]
			}
		},
		"members" :
		[
			"import"
		]
	},
	"template" :
	{
		"attributes" :
		{
			"match" :
			{
				"type" : "pattern",
				"insert" : "match=\"#pattern#\""
			},
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"priority" :
			{
				"type" : "number",
				"insert" : "priority=\"#number#\""
			},
			"mode" :
			{
				"type" : "tokens",
				"insert" : "mode=\"#tokens#\""
			},
			"as" :
			{
				"type" : "sequence-type",
				"insert" : "as=\"#sequence-type#\""
			}
		},
		"members" :
		[
			"param",
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"text" :
	{
		"attributes" :
		{
			"disable-output-escaping" :
			{
				"type" : "enum",
				"insert" : "disable-output-escaping=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"#PCDATA"
		]
	},
	"transform" :
	{
		"attributes" :
		{
			"id" :
			{
				"type" : "id",
				"insert" : "id=\"#id#\""
			},
			"extension-element-prefixes" :
			{
				"type" : "tokens",
				"insert" : "extension-element-prefixes=\"#tokens#\""
			},
			"exclude-result-prefixes" :
			{
				"type" : "tokens",
				"insert" : "exclude-result-prefixes=\"#tokens#\""
			},
			"version" :
			{
				"type" : "number",
				"insert" : "version=\"#number#\""
			},
			"xpath-default-namespace" :
			{
				"type" : "uri",
				"insert" : "xpath-default-namespace=\"#uri#\""
			},
			"default-validation" :
			{
				"type" : "enum",
				"insert" : "default-validation=\"##\"",
				"values" :
				[
					"preserve", "strip"
				]
			},
			"default-collation" :
			{
				"type" : "uri-list",
				"insert" : "default-validation=\"#uri-list#\""
			},
			"input-type-annotations" :
			{
				"type" : "enum",
				"insert" : "input-type-annotations=\"##\"",
				"values" :
				[
					"preserve", "strip", "unspecified"
				]
			}
		},
		"members" :
		[
			"import"
		]
	},
	"value-of" :
	{
		"attributes" :
		{
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"separator" :
			{
				"type" : "string",
				"insert" : "select=\"#string#\""
			},
			"disable-output-escaping" :
			{
				"type" : "enum",
				"insert" : "disable-output-escaping=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"variable" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"as" :
			{
				"type" : "sequence-type",
				"insert" : "as=\"#sequence-type#\""
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	},
	"when" :
	{
		"attributes" :
		{
			"test" :
			{
				"type" : "expression",
				"insert" : "test=\"#expression#\""
			}
		},
		"members" :
		[
			"sequence"
		]
	},
	"with-param" :
	{
		"attributes" :
		{
			"name" :
			{
				"type" : "qname",
				"insert" : "name=\"#qname#\""
			},
			"select" :
			{
				"type" : "expression",
				"insert" : "select=\"#expression#\""
			},
			"as" :
			{
				"type" : "sequence-type",
				"insert" : "as=\"#sequence-type#\""
			},
			"tunnel" :
			{
				"type" : "enum",
				"insert" : "tunnel=\"##\"",
				"values" :
				[
					"yes", "no"
				]
			}
		},
		"members" :
		[
			"element","attribute","processing-instruction","comment","value-of","text","namespace","sequence",
			"if","choose","for-each","for-each-group","apply-templates","apply-imports","call-template","next-match",
			"variable","param","number","analyze-string","message","result-document"
		]
	}
}