12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- MODULE XMLLoader; (** Stefan Walthert *)
- (** AUTHOR "swalthert"; PURPOSE ""; *)
- IMPORT
- Files, XML, XMLGeneratorSchema, XMLScanner, XMLParser, CSS2, CSS2Scanner, CSS2Parser, XMLStyle;
- CONST
- DefaultXMLGeneratorFile* = "DefaultXGS.xml";
- DefaultCSS2File* = "DefaultCSS2.css";
- VAR
- DefaultXMLElementRegistry-: XML.ElementRegistry;
- DefaultStyleSheet-: CSS2.StyleSheet;
- PROCEDURE LoadCSS*(cssName: ARRAY OF CHAR): CSS2.StyleSheet;
- VAR cssFile: Files.File; cssScanner: CSS2Scanner.Scanner; cssParser: CSS2Parser.Parser;
- BEGIN
- cssFile := Files.Old(cssName);
- IF cssFile = NIL THEN cssFile := Files.Old(DefaultCSS2File)
- END;
- IF cssFile = NIL THEN RETURN NIL
- ELSE NEW(cssScanner, cssFile); NEW(cssParser, cssScanner); RETURN cssParser.Parse()
- END
- END LoadCSS;
- PROCEDURE LoadXML*(xmlName: ARRAY OF CHAR): XML.Document;
- VAR xmlFile: Files.File; xmlScanner: XMLScanner.Scanner; xmlParser: XMLParser.Parser;
- reader: Files.Reader;
- BEGIN
- xmlFile := Files.Old(xmlName);
- IF xmlFile = NIL THEN RETURN NIL
- ELSE NEW(reader, xmlFile, 0); NEW(xmlScanner, reader); NEW(xmlParser, xmlScanner); RETURN xmlParser.Parse()
- END
- END LoadXML;
- PROCEDURE LoadComponents*(xmlName, generatorSchemaName: ARRAY OF CHAR): XML.Document;
- VAR xmlFile: Files.File; xmlScanner: XMLScanner.Scanner; xmlParser: XMLParser.Parser;
- reader: Files.Reader;
- BEGIN
- xmlFile := Files.Old(xmlName);
- IF xmlFile = NIL THEN RETURN NIL
- ELSE
- NEW(reader, xmlFile, 0);
- NEW(xmlScanner, reader); NEW(xmlParser, xmlScanner);
- xmlParser.elemReg := XMLGeneratorSchema.OpenGeneratorSchema(generatorSchemaName);
- IF xmlParser.elemReg = NIL THEN xmlParser.elemReg := DefaultXMLElementRegistry END;
- RETURN xmlParser.Parse()
- END
- END LoadComponents;
- PROCEDURE Load*(xmlName, cssName, generatorSchemaName: ARRAY OF CHAR): XML.Document;
- VAR xml: XML.Document; css: CSS2.StyleSheet;
- BEGIN
- xml := LoadComponents(xmlName, generatorSchemaName); css := LoadCSS(cssName);
- IF xml = NIL THEN RETURN NIL
- ELSE XMLStyle.AttachStyle(xml.GetRoot(), css); RETURN xml
- END
- END Load;
- PROCEDURE SetDefaultXMLElementRegistry*(generatorSchemaName: ARRAY OF CHAR);
- BEGIN
- DefaultXMLElementRegistry := XMLGeneratorSchema.OpenGeneratorSchema(generatorSchemaName)
- END SetDefaultXMLElementRegistry;
- PROCEDURE SetDefaultStyleSheet*(cssName: ARRAY OF CHAR);
- BEGIN
- DefaultStyleSheet := LoadCSS(cssName)
- END SetDefaultStyleSheet;
- BEGIN
- DefaultXMLElementRegistry := XMLGeneratorSchema.OpenGeneratorSchema(DefaultXMLGeneratorFile);
- DefaultStyleSheet := LoadCSS(DefaultCSS2File)
- END XMLLoader.
|