Static Software Solutions, L.L.C.
 
Home Company Info. Products Feedback Links

Products

AutoCodeGen
  Description
  Example
  FAQ
  Login
Audit Tracker Pro
 
Consulting Services

Example

The AutoCodeGen system takes a valid schema and returns the requested code for that schema.

Sample Schema:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
          elementFormDefault="qualified" 
          attributeFormDefault="unqualified">
	<xs:element name="news">
		<xs:annotation>
			<xs:documentation>news information is stored here</xs:documentation>
		</xs:annotation>
		<xs:complexType>
		<xs:sequence>
		<xs:element name="event" maxOccurs="unbounded">
			<xs:complexType>
			<xs:sequence>
			<xs:element name="groups">
				<xs:complexType>
				<xs:sequence>
				<xs:element name="group" maxOccurs="unbounded">
					<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Main"/>
						<xs:enumeration value="Company"/>
						<xs:enumeration value="Products"/>
						<xs:enumeration value="Consulting"/>
						<xs:enumeration value="AutoCodeGen"/>
						<xs:enumeration value="AuditTrackerPro"/>
					</xs:restriction>
					</xs:simpleType>
				</xs:element>
				</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="timestamp"/>
			<xs:element name="title"/>
			<xs:element name="text-only"/>
			<xs:element name="html-only" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="id" type="xs:integer" use="optional"/>
			</xs:complexType>
		</xs:element>
		</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
After giving the above schema to AutoCodeGen and selecting JavaScript it produces the following code:
(Note: the functions InitNode and InitAttribute have been intensionally omitted from this example.)
var xdoc_news;

/* "Root" Class "newsClass" */
function newsClass ()
{
	Init_news = function() {
		InitNode();
		return xdoc_news.documentElement;
	}
		
	Init_news();
		
	getRootNode = function() {
		return Init_news();
	}
	this.xml = function() {
		return xdoc_news.xml;
	}
	this.loadXML = function(xml) {
		InitNode(xdoc_news);
		return xdoc_news.loadXML(xml);
	}

	function eventClass ()
	{
		Init_event = function() {
			var rtnNode;
			var pNode = Init_news();
			var desiredNode = pNode.selectSingleNode("event");
			if (desiredNode == null) { 
				rtnNode = InitNode("event", pNode);
			}
			else {
					rtnNode = desiredNode;
			}
			return rtnNode;
		}

		Init_event();

		this.getNode = function() { return Init_event(); }
		this.xml = function() { return Init_event().xml; }
		this.loadXML = function(xml) {
			var rtnValue;
				
			if (xml != null) {
				var xdoc;
				var newNode;
				var desiredNode;
					
				xdoc = new ActiveXObject("Msxml2.DOMDocument");
				xdoc.loadXML(xml);
				newNode = xdoc.documentElement;
				desiredNode = Init_news();
				desiredNode.replaceChild(newNode,Init_event());
				rtnValue = true;
			}
			else { rtnValue = false; }
			return rtnValue;
		}
			
	function groupsClass ()
	{
		Init_groups = function() {
			var rtnNode;
			var pNode = Init_event();
			var desiredNode = pNode.selectSingleNode("groups");
			if (desiredNode == null) { 
				rtnNode = InitNode("groups", pNode);
			}
			else {
				rtnNode = desiredNode;
			}
			return rtnNode;
		}

		Init_groups();

		this.getNode = function() { return Init_groups(); }
		this.xml = function() { return Init_groups().xml; }
		this.loadXML = function(xml) {
			var rtnValue;
				
			if (xml != null) {
				var xdoc;
				var newNode;
				var desiredNode;
					
				xdoc = new ActiveXObject("Msxml2.DOMDocument");
				xdoc.loadXML(xml);
				newNode = xdoc.documentElement;
				desiredNode = Init_event();
				desiredNode.replaceChild(newNode,Init_groups());
				rtnValue = true;
			}
			else { rtnValue = false; }
			return rtnValue;
		}
			
		function groupObject ()
		{
			Init_group = function() {
				var rtnNode;
				var pNode = Init_groups();
				var desiredNode = pNode.selectSingleNode("group");
				if (desiredNode == null) { 
					rtnNode = InitNode("group", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}
			Init_group();
			this.getText = function () {
				var desiredNode = Init_group();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_group();
				if (txt != null) { 
					
				switch (txt) {
					case 'Main':
					case 'Company':
					case 'Products':
					case 'Consulting':
					case 'AutoCodeGen':
					case 'AuditTrackerPro':
						desiredNode.text = txt;
						break;
					default:
						desiredNode.text = "";
						break;
				}
				
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.group = new groupObject;
		
	}
	this.groups = new groupsClass;
	
		function timestampObject ()
		{
			Init_timestamp = function() {
				var rtnNode;
				var pNode = Init_event();
				var desiredNode = pNode.selectSingleNode("timestamp");
				if (desiredNode == null) { 
					rtnNode = InitNode("timestamp", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}
			Init_timestamp();
			this.getText = function () {
				var desiredNode = Init_timestamp();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_timestamp();
				if (txt != null) { 
					desiredNode.text = txt;
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.timestamp = new timestampObject;
		
		function titleObject ()
		{
			Init_title = function() {
				var rtnNode;
				var pNode = Init_event();
				var desiredNode = pNode.selectSingleNode("title");
				if (desiredNode == null) { 
					rtnNode = InitNode("title", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}
			Init_title();
			this.getText = function () {
				var desiredNode = Init_title();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_title();
				if (txt != null) { 
					desiredNode.text = txt;
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.title = new titleObject;
		
		function textOnlyObject ()
		{
			Init_textOnly = function() {
				var rtnNode;
				var pNode = Init_event();
				var desiredNode = pNode.selectSingleNode("text-only");
				if (desiredNode == null) { 
					rtnNode = InitNode("text-only", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}
			Init_textOnly();
			this.getText = function () {
				var desiredNode = Init_textOnly();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_textOnly();
				if (txt != null) { 
					desiredNode.text = txt;
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.textOnly = new textOnlyObject;
	
		function htmlOnlyObject ()
		{
			Init_htmlOnly = function() {
				var rtnNode;
				var pNode = Init_event();
				var desiredNode = pNode.selectSingleNode("html-only");
				if (desiredNode == null) { 
					rtnNode = InitNode("html-only", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}
			
			this.getText = function () {
				var desiredNode = Init_htmlOnly();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_htmlOnly();
				if (txt != null) { 
					desiredNode.text = txt;
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.htmlOnly = new htmlOnlyObject;
		
		function idAttributeObject ()
		{
			Init_id = function() {
				var rtnNode;
				var pNode = Init_event();
				var desiredNode = pNode.attribute.getNamedItem("id");
				if (desiredNode == null) { 
					rtnNode = InitAttribute("id", pNode);
				}
				else {
					rtnNode = desiredNode;
				}
				return rtnNode;
			}

			Init_id();

			this.getText = function () {
				var desiredNode = Init_id();
				return desiredNode.text;
			}
			this.setText = function (txt) {
				var desiredNode = Init_id();
				if (txt != null) { 
					desiredNode.text = txt;
				}
				else { desiredNode.text = ""; }
				return desiredNode.text;
			}
		}
		this.id = new idAttributeObject;

	}
	this.event = new eventClass;
	
}

 

© 2002 Copyright, Static Software Solutions, L.L.C.