envjs19 0.3.8.20101029121421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.jslintrbrc +30 -0
- data/.project +17 -0
- data/CHANGELOG.rdoc +57 -0
- data/DTD/xhtml-lat1.ent +196 -0
- data/DTD/xhtml-special.ent +80 -0
- data/DTD/xhtml-symbol.ent +237 -0
- data/DTD/xhtml.soc +14 -0
- data/DTD/xhtml1-frameset.dtd +1235 -0
- data/DTD/xhtml1-strict.dtd +978 -0
- data/DTD/xhtml1-transitional.dtd +1201 -0
- data/DTD/xhtml1.dcl +192 -0
- data/Makefile +7 -0
- data/Manifest.txt +280 -0
- data/README.rdoc +65 -0
- data/Rakefile +196 -0
- data/Wakefile +11 -0
- data/bin/envjsrb +257 -0
- data/build.properties +9 -0
- data/build.xml +247 -0
- data/gm/jquery.js +6002 -0
- data/gm/mainx.js +2648 -0
- data/gm/sensx.js +135 -0
- data/gm/t.js +6 -0
- data/gm/x.html +76 -0
- data/htmlparser/BrowserTreeBuilder.java +456 -0
- data/htmlparser/README +34 -0
- data/htmlparser/build.sh +38 -0
- data/jsl/jsl +0 -0
- data/jsl/jsl.default.conf +129 -0
- data/jsl/jsl.exe +0 -0
- data/lib/envjs.rb +35 -0
- data/lib/envjs/event_loop.js +206 -0
- data/lib/envjs/net.rb +3 -0
- data/lib/envjs/net/cgi.rb +94 -0
- data/lib/envjs/net/file.rb +69 -0
- data/lib/envjs/options.rb +11 -0
- data/lib/envjs/runtime.rb +346 -0
- data/lib/envjs/tempfile.rb +24 -0
- data/licenses/GPL-LICENSE.txt +278 -0
- data/licenses/MIT-LICENSE.txt +20 -0
- data/src/base64.js +80 -0
- data/src/build.js +6 -0
- data/src/cruft/bad.html +24 -0
- data/src/cruft/dom.js +606 -0
- data/src/cruft/element.js +297 -0
- data/src/cruft/good.html +30 -0
- data/src/cruft/good.js +32 -0
- data/src/cruft/internal.js +81 -0
- data/src/cruft/parser.js +458 -0
- data/src/css/properties.js +293 -0
- data/src/css/rule.js +22 -0
- data/src/css/sizzle.js +717 -0
- data/src/css/stylesheet.js +52 -0
- data/src/dom/attr.js +55 -0
- data/src/dom/cdatasection.js +31 -0
- data/src/dom/characterdata.js +119 -0
- data/src/dom/comment.js +30 -0
- data/src/dom/doctype.js +9 -0
- data/src/dom/document.js +1023 -0
- data/src/dom/dom.js +134 -0
- data/src/dom/element.js +217 -0
- data/src/dom/entities.js +273 -0
- data/src/dom/exception.js +28 -0
- data/src/dom/fragment.js +37 -0
- data/src/dom/implementation.js +140 -0
- data/src/dom/instruction.js +51 -0
- data/src/dom/namednodemap.js +374 -0
- data/src/dom/namespace.js +50 -0
- data/src/dom/node.js +618 -0
- data/src/dom/nodelist.js +195 -0
- data/src/dom/parser.js +1207 -0
- data/src/dom/text.js +73 -0
- data/src/event/event.js +47 -0
- data/src/event/mouseevent.js +4 -0
- data/src/event/uievent.js +8 -0
- data/src/html/a.js +110 -0
- data/src/html/anchor.js +80 -0
- data/src/html/area.js +57 -0
- data/src/html/base.js +26 -0
- data/src/html/blockquote-q.js +19 -0
- data/src/html/body.js +19 -0
- data/src/html/button.js +21 -0
- data/src/html/canvas.js +14 -0
- data/src/html/col-colgroup.js +49 -0
- data/src/html/collection.js +72 -0
- data/src/html/cookie.js +153 -0
- data/src/html/del-ins.js +25 -0
- data/src/html/div.js +28 -0
- data/src/html/document.js +364 -0
- data/src/html/element.js +382 -0
- data/src/html/fieldset.js +19 -0
- data/src/html/form.js +484 -0
- data/src/html/frame.js +89 -0
- data/src/html/frameset.js +25 -0
- data/src/html/head.js +44 -0
- data/src/html/html.js +0 -0
- data/src/html/htmlparser.js +340 -0
- data/src/html/iframe.js +26 -0
- data/src/html/image.js +0 -0
- data/src/html/img.js +62 -0
- data/src/html/input-elements.js +307 -0
- data/src/html/input.js +65 -0
- data/src/html/label.js +26 -0
- data/src/html/legend.js +19 -0
- data/src/html/link.js +82 -0
- data/src/html/map.js +22 -0
- data/src/html/meta.js +37 -0
- data/src/html/object.js +89 -0
- data/src/html/optgroup.js +25 -0
- data/src/html/option.js +103 -0
- data/src/html/param.js +38 -0
- data/src/html/script.js +122 -0
- data/src/html/select.js +132 -0
- data/src/html/style.js +31 -0
- data/src/html/table.js +199 -0
- data/src/html/tbody-thead-tfoot.js +92 -0
- data/src/html/td-th.js +18 -0
- data/src/html/textarea.js +31 -0
- data/src/html/title.js +20 -0
- data/src/html/tr.js +114 -0
- data/src/intro.js +141 -0
- data/src/outro.js +70 -0
- data/src/parser/html5.detailed.js +10762 -0
- data/src/parser/html5.min.js +503 -0
- data/src/parser/html5.pretty.js +10815 -0
- data/src/parser/intro.js +42 -0
- data/src/parser/outro.js +9 -0
- data/src/platform/core.js +323 -0
- data/src/platform/johnson.js +484 -0
- data/src/platform/rhino.js +327 -0
- data/src/platform/static/intro.js +41 -0
- data/src/platform/static/outro.js +30 -0
- data/src/profile/aop.js +238 -0
- data/src/profile/profile.js +402 -0
- data/src/serializer/xml.js +21 -0
- data/src/svg/animatedstring.js +25 -0
- data/src/svg/document.js +25 -0
- data/src/svg/element.js +22 -0
- data/src/svg/locatable.js +17 -0
- data/src/svg/rect.js +18 -0
- data/src/svg/rectelement.js +24 -0
- data/src/svg/stylable.js +49 -0
- data/src/svg/svgelement.js +22 -0
- data/src/svg/transformable.js +15 -0
- data/src/window/css.js +15 -0
- data/src/window/dialog.js +16 -0
- data/src/window/document.js +28 -0
- data/src/window/event.js +265 -0
- data/src/window/history.js +62 -0
- data/src/window/location.js +156 -0
- data/src/window/navigator.js +48 -0
- data/src/window/screen.js +53 -0
- data/src/window/timer.js +21 -0
- data/src/window/window.js +284 -0
- data/src/window/xhr.js +135 -0
- data/src/xpath/expression.js +49 -0
- data/src/xpath/implementation.js +2505 -0
- data/src/xpath/result.js +67 -0
- data/src/xpath/util.js +551 -0
- data/src/xpath/xmltoken.js +149 -0
- data/src/xslt/COPYING +34 -0
- data/src/xslt/ajaxslt-0.8.1/AUTHORS +1 -0
- data/src/xslt/ajaxslt-0.8.1/ChangeLog +136 -0
- data/src/xslt/ajaxslt-0.8.1/Makefile +49 -0
- data/src/xslt/ajaxslt-0.8.1/README +102 -0
- data/src/xslt/ajaxslt-0.8.1/TODO +15 -0
- data/src/xslt/ajaxslt-0.8.1/dom.js +566 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.html +24 -0
- data/src/xslt/ajaxslt-0.8.1/dom_unittest.js +131 -0
- data/src/xslt/ajaxslt-0.8.1/simplelog.js +79 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/test/xpath_script.js +45 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt.html +58 -0
- data/src/xslt/ajaxslt-0.8.1/test/xslt_script.js +33 -0
- data/src/xslt/ajaxslt-0.8.1/unittestsuite.html +26 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken.js +149 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.html +18 -0
- data/src/xslt/ajaxslt-0.8.1/xmltoken_unittest.js +811 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.html +39 -0
- data/src/xslt/ajaxslt-0.8.1/xpath_unittest.js +557 -0
- data/src/xslt/ajaxslt-0.8.1/xpathdebug.js +234 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.html +138 -0
- data/src/xslt/ajaxslt-0.8.1/xslt_unittest.js +68 -0
- data/src/xslt/implementation.js +625 -0
- data/src/xslt/processor.js +37 -0
- data/src/xslt/util.js +449 -0
- data/test/base64.js +80 -0
- data/test/call-load-test.js +15 -0
- data/test/data.js +45 -0
- data/test/debug.js +53 -0
- data/test/firebug/errorIcon.png +0 -0
- data/test/firebug/firebug.css +209 -0
- data/test/firebug/firebug.html +23 -0
- data/test/firebug/firebug.js +672 -0
- data/test/firebug/firebugx.js +10 -0
- data/test/firebug/infoIcon.png +0 -0
- data/test/firebug/warningIcon.png +0 -0
- data/test/fixtures/html/events.html +171 -0
- data/test/fixtures/html/iframe1.html +46 -0
- data/test/fixtures/html/iframe1a.html +46 -0
- data/test/fixtures/html/iframe2.html +45 -0
- data/test/fixtures/html/iframe3.html +28 -0
- data/test/fixtures/html/iframeN.html +57 -0
- data/test/fixtures/html/malformed.html +181 -0
- data/test/fixtures/html/scope.html +81 -0
- data/test/fixtures/html/trivial.html +19 -0
- data/test/fixtures/html/with_js.html +26 -0
- data/test/fixtures/images/icon-blue.png +0 -0
- data/test/fixtures/js/external_script.js +1 -0
- data/test/fixtures/js/script.js +1 -0
- data/test/fixtures/js/script_error.js +2 -0
- data/test/foo.html +8 -0
- data/test/foo.js +40 -0
- data/test/html/events.html +171 -0
- data/test/html/iframe1.html +46 -0
- data/test/html/iframe1a.html +46 -0
- data/test/html/iframe2.html +45 -0
- data/test/html/iframe3.html +30 -0
- data/test/html/iframeN.html +57 -0
- data/test/html/malformed.html +181 -0
- data/test/html/scope.html +87 -0
- data/test/html/script.js +1 -0
- data/test/html/trivial.html +19 -0
- data/test/html/with_js.html +26 -0
- data/test/index.html +328 -0
- data/test/java-prototype.js +9 -0
- data/test/jquery.js +6002 -0
- data/test/primary-tests.js +26 -0
- data/test/prototype-test.js +13 -0
- data/test/qunit.js +61 -0
- data/test/qunit/qunit/qunit.css +17 -0
- data/test/qunit/qunit/qunit.js +997 -0
- data/test/scope.html +19 -0
- data/test/scope.rb +24 -0
- data/test/smp/dmathieu/index.html +8 -0
- data/test/specs/dist/env.spec.js +1534 -0
- data/test/specs/envjs.spec.css +46 -0
- data/test/specs/parser/html.js +31 -0
- data/test/specs/parser/spec.html +40 -0
- data/test/specs/parser/xml.js +31 -0
- data/test/specs/qunit.bdd.js +210 -0
- data/test/specs/qunit.css +17 -0
- data/test/specs/qunit.js +997 -0
- data/test/specs/template/spec-0.js +31 -0
- data/test/specs/template/spec-1.js +31 -0
- data/test/specs/template/spec.html +40 -0
- data/test/specs/window/css.js +23 -0
- data/test/specs/window/dialog.js +25 -0
- data/test/specs/window/document.js +23 -0
- data/test/specs/window/event.js +25 -0
- data/test/specs/window/history.js +34 -0
- data/test/specs/window/location.js +34 -0
- data/test/specs/window/navigator.js +71 -0
- data/test/specs/window/screen.js +42 -0
- data/test/specs/window/spec.html +48 -0
- data/test/specs/window/timer.js +26 -0
- data/test/specs/window/window.js +53 -0
- data/test/specs/xhr/spec.html +47 -0
- data/test/specs/xhr/xhr.js +31 -0
- data/test/test.js +10 -0
- data/test/unit/dom.js +44 -0
- data/test/unit/elementmembers.js +92 -0
- data/test/unit/events.js +195 -0
- data/test/unit/fixtures/external_script.js +1 -0
- data/test/unit/form.js +40 -0
- data/test/unit/iframe.js +234 -0
- data/test/unit/insertion.js +23 -0
- data/test/unit/multi-window.js +212 -0
- data/test/unit/nu.validator.js +34 -0
- data/test/unit/onload.js +90 -0
- data/test/unit/parser.js +122 -0
- data/test/unit/prototypecompat.js +22 -0
- data/test/unit/proxy.js +6 -0
- data/test/unit/scope.js +209 -0
- data/test/unit/timer.js +115 -0
- data/test/unit/window.js +57 -0
- data/test/x.js +1 -0
- data/test/y.js +1 -0
- metadata +367 -0
@@ -0,0 +1,24 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
|
4
|
+
<html>
|
5
|
+
<head>
|
6
|
+
<title>JsUnit test page for file dom.js of goog-ajaxslt</title>
|
7
|
+
<script language="JavaScript" type="text/javascript"
|
8
|
+
src="jsunit/app/jsUnitCore.js"></script>
|
9
|
+
<script language="JavaScript" type="text/javascript"
|
10
|
+
src="util.js"></script>
|
11
|
+
<script language="JavaScript" type="text/javascript"
|
12
|
+
src="xmltoken.js"></script>
|
13
|
+
<script language="JavaScript" type="text/javascript"
|
14
|
+
src="dom.js"></script>
|
15
|
+
<script language="JavaScript" type="text/javascript"
|
16
|
+
src="dom_unittest.js"></script>
|
17
|
+
</head>
|
18
|
+
|
19
|
+
<body>
|
20
|
+
This is a <a href="http://www.jsunit.net/">jsUnit</a> test
|
21
|
+
page. Run it using the <a
|
22
|
+
href="jsunit/testRunner.html">jsUnit runner</a>.
|
23
|
+
</body>
|
24
|
+
</html>
|
@@ -0,0 +1,131 @@
|
|
1
|
+
// Copyright 2005 Google Inc.
|
2
|
+
// All Rights Reserved
|
3
|
+
//
|
4
|
+
// Unit test for dom.js. This also uses DOMParser, so it only runs
|
5
|
+
// in firefox.
|
6
|
+
//
|
7
|
+
// Author: Steffen Meschkat <mesch@google.com>
|
8
|
+
// Junji Takagi <jtakagi@google.com>
|
9
|
+
|
10
|
+
//********************************************
|
11
|
+
// DGF BEWARE! You MUST update this function if you add tests!
|
12
|
+
//********************************************
|
13
|
+
function exposeTestFunctionNames() {
|
14
|
+
return ['testXmlParse', 'testXmlParseWeird', 'testXmlParseJapanese', 'testXmlResolveEntities'];
|
15
|
+
}
|
16
|
+
|
17
|
+
function testXmlParse() {
|
18
|
+
if (typeof(DOMParser) == 'undefined') return;
|
19
|
+
|
20
|
+
var xml = [
|
21
|
+
'<page>',
|
22
|
+
'<request>',
|
23
|
+
'<q id="q">new york</q>',
|
24
|
+
'</request>',
|
25
|
+
'<location lat="100" ', "lon='200'/>",
|
26
|
+
'</page>'
|
27
|
+
].join('');
|
28
|
+
|
29
|
+
dom = xmlParse(xml);
|
30
|
+
dom1 = (new DOMParser).parseFromString(xml, 'text/xml');
|
31
|
+
doTestXmlParse(dom, dom1);
|
32
|
+
|
33
|
+
dom = xmlParse('<?xml version="1.0"?>' + xml);
|
34
|
+
dom1 = xmlParse("<?xml version='1.1'?>" + xml);
|
35
|
+
doTestXmlParse(dom, dom1);
|
36
|
+
|
37
|
+
var tag = 'q';
|
38
|
+
var byTag = dom.getElementsByTagName(tag);
|
39
|
+
assertEquals(1, byTag.length);
|
40
|
+
assertEquals(tag, byTag[0].nodeName);
|
41
|
+
|
42
|
+
var id = 'q';
|
43
|
+
var byId = dom.getElementById(id);
|
44
|
+
assertNotNull(byId);
|
45
|
+
assertEquals(id, byId.getAttribute('id'));
|
46
|
+
}
|
47
|
+
|
48
|
+
function testXmlParseWeird() {
|
49
|
+
|
50
|
+
var xml = [
|
51
|
+
'<_>',
|
52
|
+
'<_.:->',
|
53
|
+
'<:>!"#$%&\'()*+,-./:;<=>?[\\]^_`{|}~</:>',
|
54
|
+
'</_.:->',
|
55
|
+
'<:-_. _=".-" :="-."/>',
|
56
|
+
'</_>'
|
57
|
+
].join('');
|
58
|
+
|
59
|
+
// DOMParser seems not supporting a tagname that starts with ':', so
|
60
|
+
// avoid comparing xmlParse() and DomParser.parseFromString() here.
|
61
|
+
|
62
|
+
dom = xmlParse('<?xml version="1.0"?>' + xml);
|
63
|
+
dom1 = xmlParse("<?xml version='1.1'?>" + xml);
|
64
|
+
doTestXmlParse(dom, dom1);
|
65
|
+
}
|
66
|
+
|
67
|
+
function testXmlParseJapanese() {
|
68
|
+
if (typeof(DOMParser) == 'undefined') return;
|
69
|
+
|
70
|
+
var xml = [
|
71
|
+
'<\u30da\u30fc\u30b8>',
|
72
|
+
'<\u30ea\u30af\u30a8\u30b9\u30c8>',
|
73
|
+
'<\u30af\u30a8\u30ea>\u6771\u4eac</\u30af\u30a8\u30ea>',
|
74
|
+
'</\u30ea\u30af\u30a8\u30b9\u30c8>',
|
75
|
+
'<\u4f4d\u7f6e \u7def\u5ea6="\u4e09\u5341\u4e94" ',
|
76
|
+
"\u7d4c\u5ea6='\u767e\u56db\u5341'/>",
|
77
|
+
'</\u30da\u30fc\u30b8>'
|
78
|
+
].join('');
|
79
|
+
|
80
|
+
dom = xmlParse(xml);
|
81
|
+
dom1 = (new DOMParser).parseFromString(xml, 'text/xml');
|
82
|
+
doTestXmlParse(dom, dom1);
|
83
|
+
|
84
|
+
dom = xmlParse('<?xml version="1.0"?>' + xml);
|
85
|
+
dom1 = xmlParse("<?xml version='1.1'?>" + xml);
|
86
|
+
doTestXmlParse(dom, dom1);
|
87
|
+
}
|
88
|
+
|
89
|
+
function doTestXmlParse(dom, dom1) {
|
90
|
+
assertEquals('xmlText', xmlText(dom), xmlText(dom1));
|
91
|
+
|
92
|
+
assertEquals('#document',
|
93
|
+
dom.nodeName,
|
94
|
+
dom1.nodeName);
|
95
|
+
|
96
|
+
assertEquals('documentElement', dom.documentElement, dom.firstChild);
|
97
|
+
assertEquals('documentElement', dom1.documentElement, dom1.firstChild);
|
98
|
+
|
99
|
+
assertEquals('parentNode', dom.parentNode, null);
|
100
|
+
assertEquals('parentNode', dom1.parentNode, null);
|
101
|
+
|
102
|
+
assertEquals('parentNode', dom.documentElement.parentNode, dom);
|
103
|
+
assertEquals('parentNode', dom1.documentElement.parentNode, dom1);
|
104
|
+
|
105
|
+
assertEquals('page',
|
106
|
+
dom.documentElement.nodeName,
|
107
|
+
dom1.documentElement.nodeName);
|
108
|
+
assertEquals('dom.childNodes.length',
|
109
|
+
dom.childNodes.length,
|
110
|
+
dom1.childNodes.length);
|
111
|
+
assertEquals('dom.childNodes.length',
|
112
|
+
dom.childNodes.length,
|
113
|
+
dom1.childNodes.length);
|
114
|
+
assertEquals('page.childNodes.length',
|
115
|
+
dom.firstChild.childNodes.length,
|
116
|
+
dom1.firstChild.childNodes.length);
|
117
|
+
assertEquals('page.childNodes.length',
|
118
|
+
dom.firstChild.childNodes.length,
|
119
|
+
dom1.firstChild.childNodes.length);
|
120
|
+
|
121
|
+
assertEquals('location.attributes.length',
|
122
|
+
dom.firstChild.childNodes[1].attributes.length,
|
123
|
+
dom1.firstChild.childNodes[1].attributes.length);
|
124
|
+
assertEquals('location.attributes.length',
|
125
|
+
dom.firstChild.childNodes[1].attributes.length, 2);
|
126
|
+
}
|
127
|
+
|
128
|
+
|
129
|
+
function testXmlResolveEntities() {
|
130
|
+
assertEquals('";"', xmlResolveEntities('";"'));
|
131
|
+
}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
// Copyright 2005-2006 Google
|
2
|
+
//
|
3
|
+
// Author: Steffen Meschkat <mesch@google.com>
|
4
|
+
//
|
5
|
+
// A very simple logging facility, used in test/xpath.html.
|
6
|
+
|
7
|
+
var logging__ = true;
|
8
|
+
|
9
|
+
function Log() {};
|
10
|
+
|
11
|
+
Log.lines = [];
|
12
|
+
|
13
|
+
Log.write = function(s) {
|
14
|
+
if (logging__) {
|
15
|
+
this.lines.push(xmlEscapeText(s));
|
16
|
+
this.show();
|
17
|
+
}
|
18
|
+
};
|
19
|
+
|
20
|
+
// Writes the given XML with every tag on a new line.
|
21
|
+
Log.writeXML = function(xml) {
|
22
|
+
if (logging__) {
|
23
|
+
var s0 = xml.replace(/</g, '\n<');
|
24
|
+
var s1 = xmlEscapeText(s0);
|
25
|
+
var s2 = s1.replace(/\s*\n(\s|\n)*/g, '<br/>');
|
26
|
+
this.lines.push(s2);
|
27
|
+
this.show();
|
28
|
+
}
|
29
|
+
}
|
30
|
+
|
31
|
+
// Writes without any escaping
|
32
|
+
Log.writeRaw = function(s) {
|
33
|
+
if (logging__) {
|
34
|
+
this.lines.push(s);
|
35
|
+
this.show();
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
39
|
+
Log.clear = function() {
|
40
|
+
if (logging__) {
|
41
|
+
var l = this.div();
|
42
|
+
l.innerHTML = '';
|
43
|
+
this.lines = [];
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
Log.show = function() {
|
48
|
+
var l = this.div();
|
49
|
+
l.innerHTML += this.lines.join('<br/>') + '<br/>';
|
50
|
+
this.lines = [];
|
51
|
+
l.scrollTop = l.scrollHeight;
|
52
|
+
}
|
53
|
+
|
54
|
+
Log.div = function() {
|
55
|
+
var l = document.getElementById('log');
|
56
|
+
if (!l) {
|
57
|
+
l = document.createElement('div');
|
58
|
+
l.id = 'log';
|
59
|
+
l.style.position = 'absolute';
|
60
|
+
l.style.right = '5px';
|
61
|
+
l.style.top = '5px';
|
62
|
+
l.style.width = '250px';
|
63
|
+
l.style.height = '150px';
|
64
|
+
l.style.overflow = 'auto';
|
65
|
+
l.style.backgroundColor = '#f0f0f0';
|
66
|
+
l.style.border = '1px solid gray';
|
67
|
+
l.style.fontSize = '10px';
|
68
|
+
l.style.padding = '5px';
|
69
|
+
document.body.appendChild(l);
|
70
|
+
}
|
71
|
+
return l;
|
72
|
+
}
|
73
|
+
|
74
|
+
// Reimplement the log functions from util.js to use the simple log.
|
75
|
+
function xpathLog(msg) {
|
76
|
+
Log.write(msg);
|
77
|
+
};
|
78
|
+
function xsltLog(msg) {};
|
79
|
+
function xsltLogXml(msg) {};
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<script src="../util.js" language="JavaScript"></script>
|
4
|
+
<script src="../xmltoken.js" language="JavaScript"></script>
|
5
|
+
<script src="../dom.js" language="JavaScript"></script>
|
6
|
+
<script src="../xpath.js" language="JavaScript"></script>
|
7
|
+
<script src="../xpath_unittest.js" language="JavaScript"></script>
|
8
|
+
<script src="../xpathdebug.js" language="JavaScript"></script>
|
9
|
+
<script src="../simplelog.js" language="JavaScript"></script>
|
10
|
+
<script src="xpath_script.js" language="JavaScript"></script>
|
11
|
+
</head>
|
12
|
+
<body onload="load_expr()">
|
13
|
+
<form onsubmit="xpath_test(this);return false" action="javascript:void(0)">
|
14
|
+
<select id="s" multiple="1" size="30" name="cases"></select>
|
15
|
+
<input type="submit" value="parse" align="top"/>
|
16
|
+
</form>
|
17
|
+
</body>
|
18
|
+
</html>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
// Copyright 2005 Google Inc.
|
2
|
+
// All Rights Reserved
|
3
|
+
//
|
4
|
+
// Tests for the XPath parser. To run the test, open the file from the
|
5
|
+
// file system. No server support is required.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
// Author: Steffen Meschkat <mesch@google.com>
|
9
|
+
|
10
|
+
logging = true;
|
11
|
+
xpathdebug = true;
|
12
|
+
|
13
|
+
function load_expr() {
|
14
|
+
var s = document.getElementById('s');
|
15
|
+
for (var i = 0; i < expr.length; ++i) {
|
16
|
+
var o = new Option(expr[i].replace(/>/,'>').replace(/</,'<'));
|
17
|
+
s.options[s.options.length] = o;
|
18
|
+
}
|
19
|
+
s.selectedIndex = 0;
|
20
|
+
}
|
21
|
+
|
22
|
+
function xpath_test(form) {
|
23
|
+
Log.clear();
|
24
|
+
try {
|
25
|
+
var i = form.cases.selectedIndex;
|
26
|
+
var options = form.cases.options;
|
27
|
+
|
28
|
+
var text = options[i].value;
|
29
|
+
Log.writeRaw('<tt><b>' + text + '</b></tt>');
|
30
|
+
|
31
|
+
var expr = xpathParse(text);
|
32
|
+
Log.writeRaw('<tt><b>' + text + '</b></tt>');
|
33
|
+
Log.writeRaw('<pre>' + expr.parseTree('') + '</pre>');
|
34
|
+
|
35
|
+
options[i].selected = false;
|
36
|
+
if (i < options.length - 1) {
|
37
|
+
options[i+1].selected = true;
|
38
|
+
} else {
|
39
|
+
options[0].selected = true;
|
40
|
+
}
|
41
|
+
|
42
|
+
} catch (e) {
|
43
|
+
Log.write('EXCEPTION ' + e);
|
44
|
+
}
|
45
|
+
}
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<title>Simple XSLT test</title>
|
5
|
+
<script src="../util.js" type="text/javascript"></script>
|
6
|
+
<script src="../xmltoken.js" type="text/javascript"></script>
|
7
|
+
<script src="../dom.js" type="text/javascript"></script>
|
8
|
+
<script src="../xpath.js" type="text/javascript"></script>
|
9
|
+
<script src="../xslt.js" type="text/javascript"></script>
|
10
|
+
<script src="xslt_script.js" type="text/javascript"></script>
|
11
|
+
</head>
|
12
|
+
<body onload="cleanxml()">
|
13
|
+
<form onsubmit="test_xslt();return false">
|
14
|
+
<table>
|
15
|
+
<tr>
|
16
|
+
<td>
|
17
|
+
<textarea id="xml" cols="40" rows="10">
|
18
|
+
<page>
|
19
|
+
<message>
|
20
|
+
Hello World.
|
21
|
+
</message>
|
22
|
+
</page>
|
23
|
+
</textarea>
|
24
|
+
</td>
|
25
|
+
<td>
|
26
|
+
<textarea id="xslt" cols="40" rows="10">
|
27
|
+
<xsl:stylesheet>
|
28
|
+
<xsl:template match="/">
|
29
|
+
<xsl:apply-templates select="page/message"/>
|
30
|
+
</xsl:template>
|
31
|
+
|
32
|
+
<xsl:template match="page/message">
|
33
|
+
<div style="color:green">
|
34
|
+
<xsl:value-of select="."/>
|
35
|
+
</div>
|
36
|
+
</xsl:template>
|
37
|
+
</xsl:stylesheet>
|
38
|
+
</textarea>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
<tr>
|
42
|
+
<td colspan="2">
|
43
|
+
<input type="submit" value="process"/>
|
44
|
+
</td>
|
45
|
+
</tr>
|
46
|
+
<tr>
|
47
|
+
<td>
|
48
|
+
<textarea id="html" cols="40" rows="10">
|
49
|
+
</textarea>
|
50
|
+
</td>
|
51
|
+
<td>
|
52
|
+
<div id="htmldisplay"></div>
|
53
|
+
</td>
|
54
|
+
</tr>
|
55
|
+
</table>
|
56
|
+
</form>
|
57
|
+
</body>
|
58
|
+
</html>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
// Copyright 2005 Google Inc.
|
2
|
+
// All Rights Reserved
|
3
|
+
//
|
4
|
+
// Tests for the XSLT processor. To run the test, open the file from
|
5
|
+
// the file system. No server support is required.
|
6
|
+
//
|
7
|
+
//
|
8
|
+
// Author: Steffen Meschkat <mesch@google.com>
|
9
|
+
|
10
|
+
logging = true;
|
11
|
+
xsltdebug = true;
|
12
|
+
|
13
|
+
function el(id) {
|
14
|
+
return document.getElementById(id);
|
15
|
+
}
|
16
|
+
|
17
|
+
function test_xslt() {
|
18
|
+
var xml = xmlParse(el('xml').value);
|
19
|
+
var xslt = xmlParse(el('xslt').value);
|
20
|
+
var html = xsltProcess(xml, xslt);
|
21
|
+
el('html').value = html;
|
22
|
+
el('htmldisplay').innerHTML = html;
|
23
|
+
}
|
24
|
+
|
25
|
+
function cleanxml() {
|
26
|
+
cleanvalue('xml');
|
27
|
+
cleanvalue('xslt');
|
28
|
+
}
|
29
|
+
|
30
|
+
function cleanvalue(id) {
|
31
|
+
var x = el(id);
|
32
|
+
x.value = x.value.replace(/^\s*/, '').replace(/\n\s*/g, '\n');
|
33
|
+
}
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
2
|
+
"http://www.w3.org/TR/html4/loose.dtd">
|
3
|
+
<html>
|
4
|
+
<head>
|
5
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
6
|
+
<title>AJAXSLT Test Suite</title>
|
7
|
+
<script language="JavaScript" type="text/javascript"
|
8
|
+
src="jsunit/app/xbDebug.js"></script>
|
9
|
+
<script language="JavaScript" type="text/javascript"
|
10
|
+
src="jsunit/app/jsUnitCore.js"></script>
|
11
|
+
<script language="JavaScript" type="text/javascript"
|
12
|
+
src="jsunit/app/jsUnitTestSuite.js"></script>
|
13
|
+
<script language="Javascript" type="text/javascript">
|
14
|
+
function suite() {
|
15
|
+
var testSuite = new top.jsUnitTestSuite();
|
16
|
+
var testRoot = window.location.href.replace(/[^\/\\]+$/, "");
|
17
|
+
testSuite.addTestPage(testRoot + "dom_unittest.html");
|
18
|
+
testSuite.addTestPage(testRoot + "xmltoken_unittest.html");
|
19
|
+
testSuite.addTestPage(testRoot + "xpath_unittest.html");
|
20
|
+
testSuite.addTestPage(testRoot + "xslt_unittest.html");
|
21
|
+
return testSuite;
|
22
|
+
}
|
23
|
+
</script>
|
24
|
+
</head>
|
25
|
+
<body>AJAXSLT Test Suite</body>
|
26
|
+
</html>
|
@@ -0,0 +1,149 @@
|
|
1
|
+
// Copyright 2006 Google Inc.
|
2
|
+
// All Rights Reserved
|
3
|
+
//
|
4
|
+
// Defines regular expression patterns to extract XML tokens from string.
|
5
|
+
// See <http://www.w3.org/TR/REC-xml/#sec-common-syn>,
|
6
|
+
// <http://www.w3.org/TR/xml11/#sec-common-syn> and
|
7
|
+
// <http://www.w3.org/TR/REC-xml-names/#NT-NCName> for the specifications.
|
8
|
+
//
|
9
|
+
// Author: Junji Takagi <jtakagi@google.com>
|
10
|
+
|
11
|
+
// Detect whether RegExp supports Unicode characters or not.
|
12
|
+
|
13
|
+
var REGEXP_UNICODE = function() {
|
14
|
+
var tests = [' ', '\u0120', -1, // Konquerer 3.4.0 fails here.
|
15
|
+
'!', '\u0120', -1,
|
16
|
+
'\u0120', '\u0120', 0,
|
17
|
+
'\u0121', '\u0120', -1,
|
18
|
+
'\u0121', '\u0120|\u0121', 0,
|
19
|
+
'\u0122', '\u0120|\u0121', -1,
|
20
|
+
'\u0120', '[\u0120]', 0, // Safari 2.0.3 fails here.
|
21
|
+
'\u0121', '[\u0120]', -1,
|
22
|
+
'\u0121', '[\u0120\u0121]', 0, // Safari 2.0.3 fails here.
|
23
|
+
'\u0122', '[\u0120\u0121]', -1,
|
24
|
+
'\u0121', '[\u0120-\u0121]', 0, // Safari 2.0.3 fails here.
|
25
|
+
'\u0122', '[\u0120-\u0121]', -1];
|
26
|
+
for (var i = 0; i < tests.length; i += 3) {
|
27
|
+
if (tests[i].search(new RegExp(tests[i + 1])) != tests[i + 2]) {
|
28
|
+
return false;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
return true;
|
32
|
+
}();
|
33
|
+
|
34
|
+
// Common tokens in XML 1.0 and XML 1.1.
|
35
|
+
|
36
|
+
var XML_S = '[ \t\r\n]+';
|
37
|
+
var XML_EQ = '(' + XML_S + ')?=(' + XML_S + ')?';
|
38
|
+
var XML_CHAR_REF = '&#[0-9]+;|&#x[0-9a-fA-F]+;';
|
39
|
+
|
40
|
+
// XML 1.0 tokens.
|
41
|
+
|
42
|
+
var XML10_VERSION_INFO = XML_S + 'version' + XML_EQ + '("1\\.0"|' + "'1\\.0')";
|
43
|
+
var XML10_BASE_CHAR = (REGEXP_UNICODE) ?
|
44
|
+
'\u0041-\u005a\u0061-\u007a\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u00ff' +
|
45
|
+
'\u0100-\u0131\u0134-\u013e\u0141-\u0148\u014a-\u017e\u0180-\u01c3' +
|
46
|
+
'\u01cd-\u01f0\u01f4-\u01f5\u01fa-\u0217\u0250-\u02a8\u02bb-\u02c1\u0386' +
|
47
|
+
'\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03ce\u03d0-\u03d6\u03da\u03dc' +
|
48
|
+
'\u03de\u03e0\u03e2-\u03f3\u0401-\u040c\u040e-\u044f\u0451-\u045c' +
|
49
|
+
'\u045e-\u0481\u0490-\u04c4\u04c7-\u04c8\u04cb-\u04cc\u04d0-\u04eb' +
|
50
|
+
'\u04ee-\u04f5\u04f8-\u04f9\u0531-\u0556\u0559\u0561-\u0586\u05d0-\u05ea' +
|
51
|
+
'\u05f0-\u05f2\u0621-\u063a\u0641-\u064a\u0671-\u06b7\u06ba-\u06be' +
|
52
|
+
'\u06c0-\u06ce\u06d0-\u06d3\u06d5\u06e5-\u06e6\u0905-\u0939\u093d' +
|
53
|
+
'\u0958-\u0961\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2' +
|
54
|
+
'\u09b6-\u09b9\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u0a05-\u0a0a' +
|
55
|
+
'\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36' +
|
56
|
+
'\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8b\u0a8d' +
|
57
|
+
'\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9' +
|
58
|
+
'\u0abd\u0ae0\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30' +
|
59
|
+
'\u0b32-\u0b33\u0b36-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b85-\u0b8a' +
|
60
|
+
'\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4' +
|
61
|
+
'\u0ba8-\u0baa\u0bae-\u0bb5\u0bb7-\u0bb9\u0c05-\u0c0c\u0c0e-\u0c10' +
|
62
|
+
'\u0c12-\u0c28\u0c2a-\u0c33\u0c35-\u0c39\u0c60-\u0c61\u0c85-\u0c8c' +
|
63
|
+
'\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cde\u0ce0-\u0ce1' +
|
64
|
+
'\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d28\u0d2a-\u0d39\u0d60-\u0d61' +
|
65
|
+
'\u0e01-\u0e2e\u0e30\u0e32-\u0e33\u0e40-\u0e45\u0e81-\u0e82\u0e84' +
|
66
|
+
'\u0e87-\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5' +
|
67
|
+
'\u0ea7\u0eaa-\u0eab\u0ead-\u0eae\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4' +
|
68
|
+
'\u0f40-\u0f47\u0f49-\u0f69\u10a0-\u10c5\u10d0-\u10f6\u1100\u1102-\u1103' +
|
69
|
+
'\u1105-\u1107\u1109\u110b-\u110c\u110e-\u1112\u113c\u113e\u1140\u114c' +
|
70
|
+
'\u114e\u1150\u1154-\u1155\u1159\u115f-\u1161\u1163\u1165\u1167\u1169' +
|
71
|
+
'\u116d-\u116e\u1172-\u1173\u1175\u119e\u11a8\u11ab\u11ae-\u11af' +
|
72
|
+
'\u11b7-\u11b8\u11ba\u11bc-\u11c2\u11eb\u11f0\u11f9\u1e00-\u1e9b' +
|
73
|
+
'\u1ea0-\u1ef9\u1f00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d' +
|
74
|
+
'\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc' +
|
75
|
+
'\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec' +
|
76
|
+
'\u1ff2-\u1ff4\u1ff6-\u1ffc\u2126\u212a-\u212b\u212e\u2180-\u2182' +
|
77
|
+
'\u3041-\u3094\u30a1-\u30fa\u3105-\u312c\uac00-\ud7a3' :
|
78
|
+
'A-Za-z';
|
79
|
+
var XML10_IDEOGRAPHIC = (REGEXP_UNICODE) ?
|
80
|
+
'\u4e00-\u9fa5\u3007\u3021-\u3029' :
|
81
|
+
'';
|
82
|
+
var XML10_COMBINING_CHAR = (REGEXP_UNICODE) ?
|
83
|
+
'\u0300-\u0345\u0360-\u0361\u0483-\u0486\u0591-\u05a1\u05a3-\u05b9' +
|
84
|
+
'\u05bb-\u05bd\u05bf\u05c1-\u05c2\u05c4\u064b-\u0652\u0670\u06d6-\u06dc' +
|
85
|
+
'\u06dd-\u06df\u06e0-\u06e4\u06e7-\u06e8\u06ea-\u06ed\u0901-\u0903\u093c' +
|
86
|
+
'\u093e-\u094c\u094d\u0951-\u0954\u0962-\u0963\u0981-\u0983\u09bc\u09be' +
|
87
|
+
'\u09bf\u09c0-\u09c4\u09c7-\u09c8\u09cb-\u09cd\u09d7\u09e2-\u09e3\u0a02' +
|
88
|
+
'\u0a3c\u0a3e\u0a3f\u0a40-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a70-\u0a71' +
|
89
|
+
'\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0b01-\u0b03' +
|
90
|
+
'\u0b3c\u0b3e-\u0b43\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b82-\u0b83' +
|
91
|
+
'\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0c01-\u0c03\u0c3e-\u0c44' +
|
92
|
+
'\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c82-\u0c83\u0cbe-\u0cc4' +
|
93
|
+
'\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0d02-\u0d03\u0d3e-\u0d43' +
|
94
|
+
'\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1' +
|
95
|
+
'\u0eb4-\u0eb9\u0ebb-\u0ebc\u0ec8-\u0ecd\u0f18-\u0f19\u0f35\u0f37\u0f39' +
|
96
|
+
'\u0f3e\u0f3f\u0f71-\u0f84\u0f86-\u0f8b\u0f90-\u0f95\u0f97\u0f99-\u0fad' +
|
97
|
+
'\u0fb1-\u0fb7\u0fb9\u20d0-\u20dc\u20e1\u302a-\u302f\u3099\u309a' :
|
98
|
+
'';
|
99
|
+
var XML10_DIGIT = (REGEXP_UNICODE) ?
|
100
|
+
'\u0030-\u0039\u0660-\u0669\u06f0-\u06f9\u0966-\u096f\u09e6-\u09ef' +
|
101
|
+
'\u0a66-\u0a6f\u0ae6-\u0aef\u0b66-\u0b6f\u0be7-\u0bef\u0c66-\u0c6f' +
|
102
|
+
'\u0ce6-\u0cef\u0d66-\u0d6f\u0e50-\u0e59\u0ed0-\u0ed9\u0f20-\u0f29' :
|
103
|
+
'0-9';
|
104
|
+
var XML10_EXTENDER = (REGEXP_UNICODE) ?
|
105
|
+
'\u00b7\u02d0\u02d1\u0387\u0640\u0e46\u0ec6\u3005\u3031-\u3035' +
|
106
|
+
'\u309d-\u309e\u30fc-\u30fe' :
|
107
|
+
'';
|
108
|
+
var XML10_LETTER = XML10_BASE_CHAR + XML10_IDEOGRAPHIC;
|
109
|
+
var XML10_NAME_CHAR = XML10_LETTER + XML10_DIGIT + '\\._:' +
|
110
|
+
XML10_COMBINING_CHAR + XML10_EXTENDER + '-';
|
111
|
+
var XML10_NAME = '[' + XML10_LETTER + '_:][' + XML10_NAME_CHAR + ']*';
|
112
|
+
|
113
|
+
var XML10_ENTITY_REF = '&' + XML10_NAME + ';';
|
114
|
+
var XML10_REFERENCE = XML10_ENTITY_REF + '|' + XML_CHAR_REF;
|
115
|
+
var XML10_ATT_VALUE = '"(([^<&"]|' + XML10_REFERENCE + ')*)"|' +
|
116
|
+
"'(([^<&']|" + XML10_REFERENCE + ")*)'";
|
117
|
+
var XML10_ATTRIBUTE =
|
118
|
+
'(' + XML10_NAME + ')' + XML_EQ + '(' + XML10_ATT_VALUE + ')';
|
119
|
+
|
120
|
+
// XML 1.1 tokens.
|
121
|
+
// TODO(jtakagi): NameStartChar also includes \u10000-\ueffff.
|
122
|
+
// ECMAScript Language Specifiction defines UnicodeEscapeSequence as
|
123
|
+
// "\u HexDigit HexDigit HexDigit HexDigit" and we may need to use
|
124
|
+
// surrogate pairs, but any browser doesn't support surrogate paris in
|
125
|
+
// character classes of regular expression, so avoid including them for now.
|
126
|
+
|
127
|
+
var XML11_VERSION_INFO = XML_S + 'version' + XML_EQ + '("1\\.1"|' + "'1\\.1')";
|
128
|
+
var XML11_NAME_START_CHAR = (REGEXP_UNICODE) ?
|
129
|
+
':A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d' +
|
130
|
+
'\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff' +
|
131
|
+
'\uf900-\ufdcf\ufdf0-\ufffd' :
|
132
|
+
':A-Z_a-z';
|
133
|
+
var XML11_NAME_CHAR = XML11_NAME_START_CHAR +
|
134
|
+
((REGEXP_UNICODE) ? '\\.0-9\u00b7\u0300-\u036f\u203f-\u2040-' : '\\.0-9-');
|
135
|
+
var XML11_NAME = '[' + XML11_NAME_START_CHAR + '][' + XML11_NAME_CHAR + ']*';
|
136
|
+
|
137
|
+
var XML11_ENTITY_REF = '&' + XML11_NAME + ';';
|
138
|
+
var XML11_REFERENCE = XML11_ENTITY_REF + '|' + XML_CHAR_REF;
|
139
|
+
var XML11_ATT_VALUE = '"(([^<&"]|' + XML11_REFERENCE + ')*)"|' +
|
140
|
+
"'(([^<&']|" + XML11_REFERENCE + ")*)'";
|
141
|
+
var XML11_ATTRIBUTE =
|
142
|
+
'(' + XML11_NAME + ')' + XML_EQ + '(' + XML11_ATT_VALUE + ')';
|
143
|
+
|
144
|
+
// XML Namespace tokens.
|
145
|
+
// Used in XML parser and XPath parser.
|
146
|
+
|
147
|
+
var XML_NC_NAME_CHAR = XML10_LETTER + XML10_DIGIT + '\\._' +
|
148
|
+
XML10_COMBINING_CHAR + XML10_EXTENDER + '-';
|
149
|
+
var XML_NC_NAME = '[' + XML10_LETTER + '_][' + XML_NC_NAME_CHAR + ']*';
|