4 | Author: Sergey Chaban <serge@wildwestsoftware.com>
11 <description></description>
19 <named name=
"styleFile"
38 <named name=
"timestamp"
51 <unnamed name=
"params"
60 <script language=
"JScript"><![CDATA[
62 function Filter(str) {
63 this.data=str.split(
"\r\n");
64 this.namespaces=new Array();
67 this.docComment=false;
69 this.readLine=Filter_readLine;
72 function Filter_readLine() {
75 || this.data.length==
0
76 || this.pos
>=this.data.length)
79 var res=this.data[this.pos++];
81 if (res.charCodeAt(
0)==
127) {
82 this.docComment^=true;
83 if (this.docComment) {
84 var n=res.charCodeAt(
1)-
0x30;
86 for (var i=
0;i
<n;i++,this.indent+=
"\t");
89 } else if (this.docComment) {
90 res=this.indent+
"/// "+res;
91 } else if (res.charCodeAt(
0)==
126) {
93 if (this.namespaces[ns]==null) {
94 this.namespaces[ns]=true;
114 function writeFile(fileName,data) {
117 var fso=WScript.CreateObject(
"Scripting.FileSystemObject");
118 var txtStream=fso.CreateTextFile(fileName,true,isUnicode);
120 txtStream.Write(data);
122 var filter=new Filter(data);
123 var str=filter.readLine();
125 txtStream.WriteLine(str);
126 str=filter.readLine();
132 WScript.Echo(
"writeFile() error: "+e);
137 var xmlFile=WScript.Arguments.Named.Item(
"inFile");
138 var xslFile=WScript.Arguments.Named.Item(
"styleFile");
139 var outFile=WScript.Arguments.Named.Item(
"outFile");
141 var unicodeFlag=WScript.Arguments.Named.Item(
"unicode");
142 isUnicode=(unicodeFlag!=null)?unicodeFlag:false;
144 var timestampFlag=WScript.Arguments.Named.Item(
"timestamp");
145 timestamp=(timestampFlag!=null)?timestampFlag:true;
147 var timingFlag=WScript.Arguments.Named.Item(
"timing");
148 timing=(timingFlag!=null)?timingFlag:false;
150 var writeToFile=(outFile!=null);
152 var params=new Array();
155 for (var i=
0;i
<WScript.Arguments.Unnamed.Count;i++) {
156 var prm=WScript.Arguments.Unnamed.Item(i);
157 var nv=prm.split(
"=");
159 params[params.length]={name:nv[
0],value:nv[
1]};
164 params[params.length]={name:
"time-stamp",value:(new Date()).toGMTString()};
173 xmlObj=WScript.CreateObject(
"Msxml2.FreeThreadedDOMDocument"+xmlVer);
174 xslObj=WScript.CreateObject(
"Msxml2.FreeThreadedDOMDocument"+xmlVer);
176 WScript.Echo(
"This script requires MSXML 3.0 (release) or better.")
182 res=xmlObj.load(xmlFile);
184 WScript.Echo(
"Unable to load source file.")
189 res=xslObj.load(xslFile);
191 WScript.Echo(
"Unable to load stylesheet file.")
195 var template=WScript.CreateObject(
"Msxml2.XSLTemplate"+xmlVer);
196 template.stylesheet=xslObj;
197 var processor=template.createProcessor();
198 processor.input=xmlObj;
199 for (var i in params) {
200 processor.addParameter(params[i].name,params[i].value);
203 start=(new Date()).valueOf();
204 res=processor.transform();
205 ellapsed=(new Date()).valueOf()-start;
208 WScript.Echo(
"Transform took "+ellapsed+
" ms.")
212 var output=processor.output;
215 n=writeFile(outFile,output);
217 var filter=new Filter(output);
218 var str=filter.readLine();
221 str=filter.readLine();