Automatic Configurator for Application Code

Size: px
Start display at page:

Download "Automatic Configurator for Application Code"

Transcription

1 Automatic Configurator for Application Code ROXANA MUREŞAN 1, ANDREI BOTOACĂ 2, HORIA CIOCÂRLIE 1 1 Computer and Software Engineering Department Politehnica University of Timisoara V. Pârvan street 2, , Timisoara ROMANIA 2 Continental Automotive Timişoara, ROMANIA roxi.muresan@yahoo.com, horia@cs.upt.ro Abstract: - This paper proposes a plug-in for ConfigTool. ConfigTool is a XML editor that generates.c and.h files using XML, XML Schema and XSL files. The tool is used by software developers to configure the generic code. The software developers need to write the XML, XML Schema and XSL files that configure the generic code. For this they need to have at least medium knowledge of XML, XML Schema and XSL technologies. The Automatic Configurator can generate these files using much less input information than the XML, XML Schema and XSL files themselves. The application uses its own script which allows the developer to define the configurable data and the way it wants to use the data. The script used by the tool is much easier and faster to learn and use than the XML [1], XML Schema [2] and XSL [3] technologies. The tool was used by software developers and it is proved that it increases the quality of the configured code by eliminating consistency errors and it minimizes the time used for code configuration. Key-words:- configuration, Schema, XML, XSL, generate, generic. 1 Introduction The application is addressed to software developers and it simplifies their work to configure the source code starting from the generic code. Generic programming is a technique that allows the types to be specified later. These types are initialized when there is need for specific types to be sent as parameters. This approach allowes developers to write common functions or types which differ only by the set of types that they operate on when they are used. This way code duplication is avoided. The generic concept is tightly related to the reusability concept. In programming, reusability is the probability a segment of source code to be reused in order to add new functionalities with no changes or with minor changes to the code. The reusable classes and modules reduce the implementation time. It is considered that this code is already tested and, therefore, free of errors and in case there are changes in the implementation, these changes are localized. To configure the generic code, a developer needs to write an XML file and its Schema file which contain the configurable data and an XSL file for each file that he needs to configure. As long as the configurable data is not changed, the XML Schema file and the XSL files stay unchanged. If a reconfiguration is needed, the developer only needs to change the elements of the XML file. The main disadvantages are that the developer needs to write these files, and for this he needs to have at least medium knowledge of XML [1], XML Schema [2] and XSL [3] technologies, and the developer can easily introduce inconsistent data in these files, these kinds of errors being hard to detect. Here is where the Automatic Configurator comes in help (Figure 1). It solves both of those drawbacks. It comes with a lighter script than the XML and it checks the consistency of the data. ISBN:

2 CFG:print - is used to print the data in the configured files. CFG:format - defines the way to display the data. Fig.1. The configuring process Together, the Automatic Configurator and the ConfigTool can almost be considered a code generator. There are other code generator tools that also use XML, such as Autogen and Tankogen, which is a tool for Model-driven development tailored for model transformation and source code generation. Code generators are widely used for building GUIs, for example Interface Builder and program "wizards", which allow the programmer to design graphical user interfaces interactively while the compiler invisibly generates the corresponding source code. The rest of this paper is organized as follows: Section II describes the script used by the Automatic Configurator to generate the XML, XML Schema and XSL files. Section III explains how the Automatic Configurator works. In Section IV we give an example of how to use the script: we show the input and the generated output. In Section V we present the results of this project. Section VI states the conclusions of this paper. 2 Automatic Configurator Script The Automatic Configurator uses a markup formal language. Whit this script the developer can define the configurable data of the generic code, which can be simple types or structures of data, and the way the data is written in the generated files (configured.c and.h files). The tags of the script are comments in the C language because they are contained between /* and */. The script has four main tags, two for defining data and two tags for writing data: CFG:typedef - is used to define local data structures and instances. CFG:inst - is used to define global data and instances. The data structures can be defined in more than one piece (this will be explained later in this section) 2.1 Data tags The data tags (CFG:typedef and CFG:inst) are a treelike structured tags. They can contain other tags like CFG:sequence, CFG:choice, CFG:element and CFG:attribute. Those tags have similar meaning with the according XML Schema tags. The CFG:typedef and CFG:inst tags have similar meaning with the xs:complextype tag from XML Schema. The syntax for the CFG:typedef tag is: /*CFG:typedef*/ /*/CFG:typedef*/ It is mandatory for a CFG:typedef to have a name attribute. The occurs attribute is optional and its default value is 1. The syntax for the CFG:inst tag is: /*CFG:inst:_name_:_parent_elemtn_*/ /*/CFG:inst*/, where _name_ is the name of the data structure created by CFG:inst and _parent_element_ indicates where the data is added in the _name_ inst structure. There can be more than one CFG:inst tags with the same name. The application will gather all of them and create the final data structure. If the parent element is not specified the node will be added as a child of the inst root node, else it will be added as a child of the specified parent node. The CFG:inst tag allows the developer to create global data structures which pieces can be defined in different files. Forth we will show the syntax of other data tags: /*CFG:element*/ /*/CFG:element*/ The CFG:element tag can contain CFG:sequence, CFG:choice, CFG:element and CFG:attribute tags and can have name, type and occurs attributes. If the type attribute is specified, it has to be the name of a type declared by a CFG:typedef and it cannot have any child nodes. The CFG:element tag has similar meaning with the xs:element tag form XML Schema. /*CFG:sequence*/ /*/CFG: sequence */ /*CFG:choice*/ ISBN:

3 /*/CFG: choice */ These two tags can contain CFG:sequence, CFG:choice, and CFG:element tags. They can t have attributes and are similar with the xs:sequence and xs:choice tags from XML Schema. /*/CFG: attribute */ The CFG:attribute tag can only contain attributes. These attributes are name (mandatory), type (mandatory), fixed or default or value, restriction, link. The syntax of the name attribute is: /*name= a_name /*/ or /*name*/a_name/*/name*/ The type attribute has the following syntax: /*type = a_type */ or /*type*/a_type/*/type*/ The type can be one of the following: short, int, long, unsignedshort, unsignedint, unsignedlong, float, double, boolean, string, or a type defined by a restriction attribute. The fixed and default attributes define a fixed or a default value respectively. Their syntax is: /*fixed = a_value /*/ /*default = a_value /*/ If an CFG:attribute has a fixed value it can t have a default, value, link or restriction attribute. The value attribute has the following syntax: /*value = generic:function_name(parameters) /*/ This attribute is used when we wish an CFG:attribute to take the return value of a function call. The application implicitly defines a java class automatic_configurator.javafunctions in generic.jar where the developer can add different functions. The link attribute can be used when we want an CFG:attribute to take values from the set of values of another CFG:attribute. This attribute shapes the behavior of the xs:key and xs:keyref XML Schema attributes. The syntax is: /* link = "xpath"/*/, where the xpath value indicates the keyref xpath. The restriction attribute allows the developer to define a new type starting from the base types by adding restriction (Table 1). Table 1 Restriction and their meaning maxlength length maximum number of characters the number of characters The totaldigits restriction can be used only for integer types and the length restrictions can be used only for string. The syntax for the restriction attribute is: /*restriction restr_1 = "value1" restr_2 = value2 /*/ 2.2 Write tags The CFG:format tag defines the format in which the data will be written. The formats defined are global and can be referenced in other input files. The syntax is: /*CFG:format:formatname:"the format"/*/ the format is a concatenation of strings and parameters (@*). Example: /*CFG:format:struct2:"'{'+@*+','+@*+'}'"/*/ The format can include the new line character \n. The CFG:print tag is used to write the data in the configured files. The tag needs to be placed exactly where the data needs to be written. Syntax: /*CFG:print:element_name:format/*/ The element_name is the name of the elements to be displayed. The format can be a locally defined format or the name of a globally defined format. Example of CFG:print with global format: Example of CFG:print with local format: /*CFG:print:element_person:"'{'+@name+','+@age+' }'"/*/ The CFG:print tags can be nested. In a CFG:print with global format we can give as parameter for the format another CFG:print tag specifying the element and the format name. The syntax of a nested print tag is: element_name : global_format (format parameters) Restriction pattern minexclusive mininclusive maxinclusive maxexclusive totaldigits minlength Meaning takes as value a regular expression minimum exclusive value minimum inclusive value maximum inclusive value maximum exclusive value total number of digits minimum number of characters 3 The Automatic Configurator 3.1 How to use the application? The application needs first to be integrated as a external in ConfigTool by adding a <External> element in the properties.xml from the ConfigTool folder. <EXTERNALS> <library enable="true" ISBN:

4 entrypoint="main.entrypoint" icon="configtool_path/ac.gif" label="run Automatic Configurator" module="configtool_path/automaticcon figurator.jar"/> </EXTERNALS>, where configtool_path is the path to the ConfigTool directory, ac.gif is the application icon and has to be placed in the ConfigTool folder, and the AutomaticConfigurator.jar is the application jar file and has to be placed also in the ConfigTool folder. To use this application, the developer needs to insert tags in the generic source files. The application is run from ConfigTool by selecting from the menu Externals the item run Automatic Configurator. The application user interface will be displayed (Figure 2). Fig.2. Automatic Configurator user interface The application requires a name for the project, the path to the folder containing the tagged input files, and a path where to put the results. If the check button Create project is checked then the application will also generate the ConfigTool project files, else it will only generate an XML file, a corresponding XML Schema file and an XSL file for each input file. The generated files will be placed in a folder which name will be the name specified by the Project name entry field. Figure 3 shows the structure of the output folder. If the developer has chosen to generate the ConfigTool project files, he can then open the project with ConfigTool, instantiate the data by adding elements in the XML file, and then generate the configured source files with ConfigTool. The configured code is ready for delivery because the tags that were initially added between comments are deleted. 3.2 How the application works The application works in four steps (Figure 4). First it reads the input files, than in scans the files for the script tags, it checks the consistency of the data and it writes the XML file, XML Schema file, XSL files, and ConfigTool project files. The most complex part is the files scanning. The application uses regular expressions [4] to scan the input files for the tags. These regular expressions mach first the beginning and the end of the tags and then with other regular expressions the content is analyzed and specific objects are created, or if the content is not valid an error message is displayed. Example of regular expressions used for the CFG:format tag, the name of the format and the format respectively: (/\\*CFG:format:)(.+)(:\\s*\"{1})(.+)(\"{1}\\s*/\\*/) \\s*[a-za-z][a-za-z0-9_]*\\s* \\s*(('[.[^'@]]*'\\s*) (@\\*\\s*)){1}((\\+\\s*@\\*\\s*) (\ \+\\s*'[.[^'@]]*'\\s*))* Input Reader Scanner Consistency check Output writer Fig.4. Application Architecture Fig.3. Output folder structure The first expression searches for the extremities of the tag, the second expression checks the validity of the name and the third one checks if the format is a concatenation of strings ISBN:

5 The content of the nested tags (CFG:typedef, CFG:inst, CFG:print) is scanned recursively because they have a tree-like structure. After scanning, the application checks the consistency of the data. It checks if the type of CFG:element tags exist, the type of CFG:attribute tags is a base type or a type defined by a restriction and it checks if the xpath specified in a link attribute exists. If the consistency check is successful the application writes the output files. The application has a well developed error reporting system. The application doesn t stops at the first occurring error. This helps the developer to find and correct the syntax and consistency errors. 4 Examples For a better understanding of how the application generates the content of the output files we will give some examples of input script tags and the generated code. In the following example, we have a data structure that represents a date of birth. /*CFG:typedef*/ /*name="date_of_birth"/*/ /*name="year"/*/ /*type= int /*/ /*restriction pattern= (19) (20)[0-9]{2} /*/ /*/ CFG:attribute*/ /*name="month"/*/ /*type= int /*/ /*restriction mininclusive = 1 maxinclusive = 12 /*/ /*/ CFG:attribute*/ /*name="day"/*/ /*type= int /*/ /*restriction mininclusive = 1 maxinclusive = 31 /*/ /*/ CFG:attribute*/ /*/CFG:typedef*/ This script will generate the following lines in the XML Schema file: <xs:complextype name = "date_of_birth"> <xs:attribute name="year" use="required"> <xs:simpletype> <xs:restriction base="xs:int"> <xs:pattern value="(19) (20)[0-9]{2}"/> </xs:restriction> </xs:simpletype> </xs:attribute> <xs:attribute name="month" use="required"> <xs:simpletype> <xs:restriction base="xs:int"> <xs:mininclusive value="1"/> <xs:maxinclusive value="12"/> </xs:restriction> </xs:simpletype> </xs:attribute> <xs:attribute name="day" use="required"> <xs:simpletype> <xs:restriction base="xs:int"> <xs:mininclusive value="1"/> <xs:maxinclusive value="31"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> For the next example we will consider the following format and print tags /*CFG :format :birth_date :"'{'+@*+'/'+@*+'/ +@*+ },\n'" In the XLS file the following lines will be generated: </xsl:text> <xsl:for-each select="//date_of_birth"> <xsl:text>{</xsl:text> <xsl:value-of select="@month"/> <xsl:text>/</xsl:text> <xsl:value-of select="@day"/> <xsl:text>/</xsl:text> <xsl:value-of select="@year"/> <xsl:text>}, </xsl:text> <xsl:text> 5 Results The goal of this project was to improve the time spent by software developers on configuring the generic code and to eliminate the bugs introduced by consistency errors. The application provides the following functionalities: It generates the ConfigTool project files ISBN:

6 It generates an XSL file for each input file The generated XSL files don t contain the initial tags The folder with the results has a fixed subfolder structure. The user interface requires the name of the project, the input folder and the output folder path, and the user can choose to generate the ConfigTool project files or not. 6 Conclusions and further development The project facilitates the software developer s work on configuring the generic code. It improves not only the time spent to configure the code, but also improves the quality of the code by eliminating consistency errors. The application can be extended by adding more user defined function in the generic.jar. References: [1] Erik T. Ray, Learning XML, O Reilly, [2] Eric van der Vlist, XML Schema, O Reilly, [3] Doug Tidwell, XSLT, O Reilly, [4] Mehran Habibi, Java Regular Expressions, Apress, [5] F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern Oriented Software Architecture, Vol 1: A System of Patterns, J.Wiley&Sons, [6] E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Patterns: Elements of Reusable Object- Oriented Software, Addison Wesley, ISBN:

XML Format Plug-in User s Guide. Version 10g Release 3 (10.3)

XML Format Plug-in User s Guide. Version 10g Release 3 (10.3) XML Format Plug-in User s Guide Version 10g Release 3 (10.3) XML... 4 TERMINOLOGY... 4 CREATING AN XML FORMAT... 5 CREATING AN XML FORMAT BASED ON AN EXISTING XML MESSAGE FORMAT... 5 CREATING AN EMPTY

More information

XML. Document Type Definitions XML Schema. Database Systems and Concepts, CSCI 3030U, UOIT, Course Instructor: Jarek Szlichta

XML. Document Type Definitions XML Schema. Database Systems and Concepts, CSCI 3030U, UOIT, Course Instructor: Jarek Szlichta XML Document Type Definitions XML Schema 1 XML XML stands for extensible Markup Language. XML was designed to describe data. XML has come into common use for the interchange of data over the Internet.

More information

Modelling XML Applications (part 2)

Modelling XML Applications (part 2) Modelling XML Applications (part 2) Patryk Czarnik XML and Applications 2014/2015 Lecture 3 20.10.2014 Common design decisions Natural language Which natural language to use? It would be a nonsense not

More information

Markup Languages. Lecture 4. XML Schema

Markup Languages. Lecture 4. XML Schema Markup Languages Lecture 4. XML Schema Introduction to XML Schema XML Schema is an XML-based alternative to DTD. An XML schema describes the structure of an XML document. The XML Schema language is also

More information

COMP9321 Web Application Engineering. Extensible Markup Language (XML)

COMP9321 Web Application Engineering. Extensible Markup Language (XML) COMP9321 Web Application Engineering Extensible Markup Language (XML) Dr. Basem Suleiman Service Oriented Computing Group, CSE, UNSW Australia Semester 1, 2016, Week 4 http://webapps.cse.unsw.edu.au/webcms2/course/index.php?cid=2442

More information

BEAWebLogic. Integration. Transforming Data Using XQuery Mapper

BEAWebLogic. Integration. Transforming Data Using XQuery Mapper BEAWebLogic Integration Transforming Data Using XQuery Mapper Version: 10.2 Document Revised: March 2008 Contents Introduction Overview of XQuery Mapper.............................................. 1-1

More information

XML APIs Testing Using Advance Data Driven Techniques (ADDT) Shakil Ahmad August 15, 2003

XML APIs Testing Using Advance Data Driven Techniques (ADDT) Shakil Ahmad August 15, 2003 XML APIs Testing Using Advance Data Driven Techniques (ADDT) Shakil Ahmad August 15, 2003 Table of Contents 1. INTRODUCTION... 1 2. TEST AUTOMATION... 2 2.1. Automation Methodology... 2 2.2. Automated

More information

Semantic Web. XML and XML Schema. Morteza Amini. Sharif University of Technology Fall 94-95

Semantic Web. XML and XML Schema. Morteza Amini. Sharif University of Technology Fall 94-95 ه عا ی Semantic Web XML and XML Schema Morteza Amini Sharif University of Technology Fall 94-95 Outline Markup Languages XML Building Blocks XML Applications Namespaces XML Schema 2 Outline Markup Languages

More information

XML Schema Element and Attribute Reference

XML Schema Element and Attribute Reference E XML Schema Element and Attribute Reference all This appendix provides a full listing of all elements within the XML Schema Structures Recommendation (found at http://www.w3.org/tr/xmlschema-1/). The

More information

WBM-RDA Integration. User Guide

WBM-RDA Integration. User Guide WBM-RDA Integration User Guide Level: Intermediate Ray W. Ellis (rayellis@us.ibm.com) Daniel T. Chang (dtchang@us.ibm.com) Mei Y. Selvage (meis@us.ibm.com) User Guide WBM and RDA Integration Page 1 of

More information

So far, we've discussed the use of XML in creating web services. How does this work? What other things can we do with it?

So far, we've discussed the use of XML in creating web services. How does this work? What other things can we do with it? XML Page 1 XML and web services Monday, March 14, 2011 2:50 PM So far, we've discussed the use of XML in creating web services. How does this work? What other things can we do with it? XML Page 2 Where

More information

Last week we saw how to use the DOM parser to read an XML document. The DOM parser can also be used to create and modify nodes.

Last week we saw how to use the DOM parser to read an XML document. The DOM parser can also be used to create and modify nodes. Distributed Software Development XML Schema Chris Brooks Department of Computer Science University of San Francisco 7-2: Modifying XML programmatically Last week we saw how to use the DOM parser to read

More information

Syntax XML Schema XML Techniques for E-Commerce, Budapest 2004

Syntax XML Schema XML Techniques for E-Commerce, Budapest 2004 Mag. iur. Dr. techn. Michael Sonntag Syntax XML Schema XML Techniques for E-Commerce, Budapest 2004 E-Mail: sonntag@fim.uni-linz.ac.at http://www.fim.uni-linz.ac.at/staff/sonntag.htm Michael Sonntag 2004

More information

Teiid Designer User Guide 7.5.0

Teiid Designer User Guide 7.5.0 Teiid Designer User Guide 1 7.5.0 1. Introduction... 1 1.1. What is Teiid Designer?... 1 1.2. Why Use Teiid Designer?... 2 1.3. Metadata Overview... 2 1.3.1. What is Metadata... 2 1.3.2. Editing Metadata

More information

Appendix H XML Quick Reference

Appendix H XML Quick Reference HTML Appendix H XML Quick Reference What Is XML? Extensible Markup Language (XML) is a subset of the Standard Generalized Markup Language (SGML). XML allows developers to create their own document elements

More information

Chapter 2 XML, XML Schema, XSLT, and XPath

Chapter 2 XML, XML Schema, XSLT, and XPath Summary Chapter 2 XML, XML Schema, XSLT, and XPath Ryan McAlister XML stands for Extensible Markup Language, meaning it uses tags to denote data much like HTML. Unlike HTML though it was designed to carry

More information

Faster XML data validation in a programming language with XML datatypes

Faster XML data validation in a programming language with XML datatypes Faster XML data validation in a programming language with XML datatypes Kurt Svensson Inobiz AB Kornhamnstorg 61, 103 12 Stockholm, Sweden kurt.svensson@inobiz.se Abstract EDI-C is a programming language

More information

B oth element and attribute declarations can use simple types

B oth element and attribute declarations can use simple types Simple types 154 Chapter 9 B oth element and attribute declarations can use simple types to describe the data content of the components. This chapter introduces simple types, and explains how to define

More information

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02

Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02 Mobile Computing Professor Pushpendra Singh Indraprastha Institute of Information Technology Delhi Java Basics Lecture 02 Hello, in this lecture we will learn about some fundamentals concepts of java.

More information

Chapter 11 XML Data Modeling. Recent Development for Data Models 2016 Stefan Deßloch

Chapter 11 XML Data Modeling. Recent Development for Data Models 2016 Stefan Deßloch Chapter 11 XML Data Modeling Recent Development for Data Models 2016 Stefan Deßloch Motivation Traditional data models (e.g., relational data model) primarily support structure data separate DB schema

More information

Framing how values are extracted from the data stream. Includes properties for alignment, length, and delimiters.

Framing how values are extracted from the data stream. Includes properties for alignment, length, and delimiters. DFDL Introduction For Beginners Lesson 3: DFDL properties In lesson 2 we learned that in the DFDL language, XML Schema conveys the basic structure of the data format being modeled, and DFDL properties

More information

XML extensible Markup Language

XML extensible Markup Language extensible Markup Language Eshcar Hillel Sources: http://www.w3schools.com http://java.sun.com/webservices/jaxp/ learning/tutorial/index.html Tutorial Outline What is? syntax rules Schema Document Object

More information

Software Engineering Methods, XML extensible Markup Language. Tutorial Outline. An Example File: Note.xml XML 1

Software Engineering Methods, XML extensible Markup Language. Tutorial Outline. An Example File: Note.xml XML 1 extensible Markup Language Eshcar Hillel Sources: http://www.w3schools.com http://java.sun.com/webservices/jaxp/ learning/tutorial/index.html Tutorial Outline What is? syntax rules Schema Document Object

More information

Towards a Java Framework for Knowledge Representation and Inference

Towards a Java Framework for Knowledge Representation and Inference Towards a Java Framework for Knowledge Representation and Inference Adrian GIURCA University of Craiova, Faculty of Mathematics and Computer Science Email: giurca@inf.ucv.ro Abstract. The Knowledge Representation

More information

XML Schema. Mario Alviano A.Y. 2017/2018. University of Calabria, Italy 1 / 28

XML Schema. Mario Alviano A.Y. 2017/2018. University of Calabria, Italy 1 / 28 1 / 28 XML Schema Mario Alviano University of Calabria, Italy A.Y. 2017/2018 Outline 2 / 28 1 Introduction 2 Elements 3 Simple and complex types 4 Attributes 5 Groups and built-in 6 Import of other schemes

More information

More XML Schemas, XSLT, Intro to PHP. CS174 Chris Pollett Oct 15, 2007.

More XML Schemas, XSLT, Intro to PHP. CS174 Chris Pollett Oct 15, 2007. More XML Schemas, XSLT, Intro to PHP CS174 Chris Pollett Oct 15, 2007. Outline XML Schemas XSLT PHP Overview of data types There are two categories of data types in XML Schemas: simple types -- which are

More information

XSFORM: A SCHEMA-DRIVEN FORM-BASED XML INFORMATION PROCESSOR

XSFORM: A SCHEMA-DRIVEN FORM-BASED XML INFORMATION PROCESSOR XSFORM: A SCHEMA-DRIVEN FORM-BASED XML INFORMATION PROCESSOR Shang-Hsien Hsieh and Hsien-Tang Lin Department of Civil Engineering, National Taiwan University, Taipei, Taiwan 10617, R.O.C. shhsieh@ce.ntu.edu.tw;

More information

PESC Compliant JSON Version /19/2018. A publication of the Technical Advisory Board Postsecondary Electronic Standards Council

PESC Compliant JSON Version /19/2018. A publication of the Technical Advisory Board Postsecondary Electronic Standards Council Version 0.5.0 10/19/2018 A publication of the Technical Advisory Board Postsecondary Electronic Standards Council 2018. All Rights Reserved. This document may be copied and furnished to others, and derivative

More information

Framing how values are extracted from the data stream. Includes properties for alignment, length, and delimiters.

Framing how values are extracted from the data stream. Includes properties for alignment, length, and delimiters. DFDL Introduction For Beginners Lesson 3: DFDL properties Version Author Date Change 1 S Hanson 2011-01-24 Created 2 S Hanson 2011-03-30 Updated 3 S Hanson 2012-09-21 Corrections for errata 4 S Hanson

More information

Jeff Offutt. SWE 642 Software Engineering for the World Wide Web

Jeff Offutt.  SWE 642 Software Engineering for the World Wide Web XML Advanced Topics Jeff Offutt http://www.cs.gmu.edu/~offutt/ SWE 642 Software Engineering for the World Wide Web sources: Professional Java Server Programming, Patzer, Wrox, 2 nd edition, Ch 5, 6 Programming

More information

XML DTDs and Namespaces. CS174 Chris Pollett Oct 3, 2007.

XML DTDs and Namespaces. CS174 Chris Pollett Oct 3, 2007. XML DTDs and Namespaces CS174 Chris Pollett Oct 3, 2007. Outline Internal versus External DTDs Namespaces XML Schemas Internal versus External DTDs There are two ways to associate a DTD with an XML document:

More information

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM

INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM INCORPORATING ADVANCED PROGRAMMING TECHNIQUES IN THE COMPUTER INFORMATION SYSTEMS CURRICULUM Charles S. Saxon, Eastern Michigan University, charles.saxon@emich.edu ABSTRACT Incorporating advanced programming

More information

All About <xml> CS193D, 2/22/06

All About <xml> CS193D, 2/22/06 CS193D Handout 17 Winter 2005/2006 February 21, 2006 XML See also: Chapter 24 (709-728) All About CS193D, 2/22/06 XML is A markup language, but not really a language General purpose Cross-platform

More information

Overview of the EU ETS Reporting Language (XETL)

Overview of the EU ETS Reporting Language (XETL) Overview of the EU ETS Reporting Language (XETL) General The EU ETS Reporting Language is an electronic ing language supporting EU ETS Monitoring, Reporting and Validation (MRV) activities such as submitting

More information

Understanding Page Template Components. Brandon Scheirman Instructional Designer, OmniUpdate

Understanding Page Template Components. Brandon Scheirman Instructional Designer, OmniUpdate Understanding Page Template Components Brandon Scheirman Instructional Designer, OmniUpdate Where do PCFs come from??.pcf .PCF Agenda Implementation Process Terminology used in Template Development Hands-on

More information

Schema Element Name Has Extra Content

Schema Element Name Has Extra Content Schema Element Name Has Extra Content It is used to describe and validate the structure and the content of XML data. XML schema defines the elements, attributes and data types. Schema element supports

More information

Introducing our First Schema

Introducing our First Schema 1 di 11 21/05/2006 10.24 Published on XML.com http://www.xml.com/pub/a/2000/11/29/schemas/part1.html See this if you're having trouble printing code examples Using W3C XML By Eric van der Vlist October

More information

Object-Oriented Software Development Goal and Scope

Object-Oriented Software Development Goal and Scope Object-Oriented Software Development Goal and Scope Koichiro Ochimizu Japan Advanced Institute of Science and Technologies School of Information Science Scope and Goal Goal enable you to understand basic

More information

EVALUATION COPY. Contents

EVALUATION COPY. Contents Contents Chapter 1 - Course Introduction... 7 Course Objectives... 8 Course Overview... 10 Using the Workbook... 11 Suggested References... 12 Chapter 2 - Defining New Types Using Schemas... 15 Substitution

More information

Broker Pattern. Teemu Koponen

Broker Pattern. Teemu Koponen Broker Pattern Teemu Koponen tkoponen@iki.fi Broker Pattern Context and problem Solution Implementation Conclusions Comments & discussion Example Application Stock Exchange Trader 1 Stock Exchange 1 Trader

More information

The design and implementation of a GUI configuration tool for the European climate community using XML documents

The design and implementation of a GUI configuration tool for the European climate community using XML documents JOURNAL OF L A TEX CLASS FILES, VOL. 1, NO. 11, NOVEMBER 2002 1 The design and implementation of a GUI configuration tool for the European climate community using XML documents Claes Larsson Abstract This

More information

SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software

SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software SyncFree SyncFree: The Development of an Open Source Personal Data Synchronization Software {s1669021, s1598011, yccheng, hsieh}@ntut.edu.tw SyncFree Abstract People who use different computers at different

More information

Custom Data Access with MapObjects Java Edition

Custom Data Access with MapObjects Java Edition Custom Data Access with MapObjects Java Edition Next Generation Command and Control System (NGCCS) Tactical Operations Center (TOC) 3-D Concurrent Technologies Corporation Derek Sedlmyer James Taylor 05/24/2005

More information

Java EE 7: Back-end Server Application Development 4-2

Java EE 7: Back-end Server Application Development 4-2 Java EE 7: Back-end Server Application Development 4-2 XML describes data objects called XML documents that: Are composed of markup language for structuring the document data Support custom tags for data

More information

"'' zoo 250. MYINSIGHT Dosh boards & Reports. Release Notes

'' zoo 250. MYINSIGHT Dosh boards & Reports. Release Notes 300 250. "'' zoo 150 10 974 575 645 941 802 715 557 MYINSIGHT Dosh boards & Reports Release Notes 1Chapter 1 VERSION HISTORY Date Changes Version number 7-12-2015 Transformation to DITA. Update for myinsight

More information

PESC Compliant JSON Version /04/2019

PESC Compliant JSON Version /04/2019 Version 1.0.0 02/04/2019 A publication of the Technical Advisory Board, 2018. This document is released and all use of it is controlled under Creative Commons, specifically under an Attribution- ShareAlike

More information

Multi-Level Modeling with XML

Multi-Level Modeling with XML 5 th International Workshop on Multi-Level Modeling MULTI 2018 Copenhagen, October 16, 2018 Multi-Level Modeling with XML Dr. Jens Gulden Information Systems and Enterprise Modeling, ICB Institute for

More information

A System of Patterns for Web Navigation

A System of Patterns for Web Navigation A System of Patterns for Web Navigation Mohammed Abul Khayes Akanda and Daniel M. German Department of Computer Science, University of Victoria, Canada maka@alumni.uvic.ca, dmgerman@uvic.ca Abstract. In

More information

Altova XMLSpy 2014 Tutorial

Altova XMLSpy 2014 Tutorial Tutorial All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage

More information

Introduction Syntax and Usage XML Databases Java Tutorial XML. November 5, 2008 XML

Introduction Syntax and Usage XML Databases Java Tutorial XML. November 5, 2008 XML Introduction Syntax and Usage Databases Java Tutorial November 5, 2008 Introduction Syntax and Usage Databases Java Tutorial Outline 1 Introduction 2 Syntax and Usage Syntax Well Formed and Valid Displaying

More information

Big Data 9. Data Models

Big Data 9. Data Models Ghislain Fourny Big Data 9. Data Models pinkyone / 123RF Stock Photo 1 Syntax vs. Data Models Physical view Syntax this is text. 2 Syntax vs. Data Models a Logical view

More information

The Object Recursion Pattern

The Object Recursion Pattern SilverMark, Inc. woolf@acm.org OBJECT RECURSION Object Behavioral Intent Distribute processing of a request over a structure by delegating polymorphically. Object Recursion transparently enables a request

More information

Altova XMLSpy Tutorial

Altova XMLSpy Tutorial Altova XMLSpy 2018 Tutorial All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or

More information

myinsight for Documentum Release Notes

myinsight for Documentum Release Notes myinsight for Documentum Release Notes Contents 1. Version History... 3 2. Product... 4 3. Environment and System Requirements... 6 3.1. Webservice Environment and System Requirements... 6 4. What's New...

More information

XML and Web Services

XML and Web Services XML and Web Services Lecture 8 1 XML (Section 17) Outline XML syntax, semistructured data Document Type Definitions (DTDs) XML Schema Introduction to XML based Web Services 2 Additional Readings on XML

More information

Altova XMLSpy 2007 Tutorial

Altova XMLSpy 2007 Tutorial Tutorial All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage

More information

XML Wrap-up. CS 431 March 1, 2006 Carl Lagoze Cornell University

XML Wrap-up. CS 431 March 1, 2006 Carl Lagoze Cornell University XML Wrap-up CS 431 March 1, 2006 Carl Lagoze Cornell University XSLT Processing Model Input XSL doc parse Input XML doc parse Parsed tree serialize Input XML doc Parsed tree Xformed tree Output doc (xml,

More information

Coordination Patterns

Coordination Patterns Coordination Patterns 1. Coordination Patterns Design Patterns and their relevance for Coordination Oscar Nierstrasz Software Composition Group Institut für Informatik (IAM) Universität Bern oscar@iam.unibe.ch

More information

Altova XMLSpy 2013 Tutorial

Altova XMLSpy 2013 Tutorial Tutorial All rights reserved. No parts of this work may be reproduced in any form or by any means - graphic, electronic, or mechanical, including photocopying, recording, taping, or information storage

More information

Computer Science 425 Fall 2006 Second Take-home Exam Out: 2:50PM Wednesday Dec. 6, 2006 Due: 5:00PM SHARP Friday Dec. 8, 2006

Computer Science 425 Fall 2006 Second Take-home Exam Out: 2:50PM Wednesday Dec. 6, 2006 Due: 5:00PM SHARP Friday Dec. 8, 2006 Computer Science 425 Fall 2006 Second Take-home Exam Out: 2:50PM Wednesday Dec. 6, 2006 Due: 5:00PM SHARP Friday Dec. 8, 2006 Instructions: This exam must be entirely your own work. Do not consult with

More information

The XQuery Data Model

The XQuery Data Model The XQuery Data Model 9. XQuery Data Model XQuery Type System Like for any other database query language, before we talk about the operators of the language, we have to specify exactly what it is that

More information

Introduction to XSLT. Version 1.0 July nikos dimitrakas

Introduction to XSLT. Version 1.0 July nikos dimitrakas Introduction to XSLT Version 1.0 July 2011 nikos dimitrakas Table of contents 1 INTRODUCTION... 3 1.1 XSLT... 3 1.2 PREREQUISITES... 3 1.3 STRUCTURE... 3 2 SAMPLE DATA... 4 3 XSLT... 6 4 EXAMPLES... 7

More information

XML and XSLT. XML and XSLT 10 February

XML and XSLT. XML and XSLT 10 February XML and XSLT XML (Extensible Markup Language) has the following features. Not used to generate layout but to describe data. Uses tags to describe different items just as HTML, No predefined tags, just

More information

Enforcing the Complex Business Rules of NIEM Exchanges

Enforcing the Complex Business Rules of NIEM Exchanges Enforcing the Complex Business Rules of NIEM Exchanges Priscilla Walmsley Joel Byford 1 Twitter #NIEMNTE3 What are Business Rules? Constraints on data in an exchange Usually contextual or conditional Can

More information

Restricting complextypes that have mixed content

Restricting complextypes that have mixed content Restricting complextypes that have mixed content Roger L. Costello October 2012 complextype with mixed content (no attributes) Here is a complextype with mixed content:

More information

Web Services Week 3. Fall Emrullah SONUÇ. Department of Computer Engineering Karabuk University

Web Services Week 3. Fall Emrullah SONUÇ. Department of Computer Engineering Karabuk University Web Services Week 3 Emrullah SONUÇ Department of Computer Engineering Karabuk University Fall 2017 1 Recap XML, Writing XML Rules for Writing XML Elements, Attributes, and Values XSL, XSLT 2 Contents Homework

More information

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet.

The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. 1 2 3 The Extensible Markup Language (XML) and Java technology are natural partners in helping developers exchange data and programs across the Internet. That's because XML has emerged as the standard

More information

Setting Up the Development Environment

Setting Up the Development Environment CHAPTER 5 Setting Up the Development Environment This chapter tells you how to prepare your development environment for building a ZK Ajax web application. You should follow these steps to set up an environment

More information

Introduction to Programming Using Java (98-388)

Introduction to Programming Using Java (98-388) Introduction to Programming Using Java (98-388) Understand Java fundamentals Describe the use of main in a Java application Signature of main, why it is static; how to consume an instance of your own class;

More information

Oracle Enterprise Data Quality

Oracle Enterprise Data Quality Oracle Enterprise Data Quality Automated Loading and Running of Projects Version 9.0 January 2012 Copyright 2006, 2012, Oracle and/or its affiliates. All rights reserved. Oracle Enterprise Data Quality,

More information

Structured documents

Structured documents Structured documents An overview of XML Structured documents Michael Houghton 15/11/2000 Unstructured documents Broadly speaking, text and multimedia document formats can be structured or unstructured.

More information

XSLT: How Do We Use It?

XSLT: How Do We Use It? XSLT: How Do We Use It? Nancy Hallberg Nikki Massaro Kauffman 1 XSLT: Agenda Introduction & Terminology XSLT Walkthrough Client-Side XSLT/XHTML Server-Side XSLT/XHTML More Creative Server-Side XSLT 2 XSLT:

More information

* * DFDL Introduction For Beginners. Lesson 2: DFDL Language Basics. DFDL and XML Schema

* * DFDL Introduction For Beginners. Lesson 2: DFDL Language Basics. DFDL and XML Schema DFDL Introduction For Beginners Lesson 2: DFDL Language Basics Version Author Date Change 1 S Hanson 2011-01-24 Created 2 S Hanson 2011-01-24 Updated 3 S Hanson 2011-03-30 Improved 4 S Hanson 2012-02-29

More information

Manipulating XML Trees XPath and XSLT. CS 431 February 18, 2008 Carl Lagoze Cornell University

Manipulating XML Trees XPath and XSLT. CS 431 February 18, 2008 Carl Lagoze Cornell University Manipulating XML Trees XPath and XSLT CS 431 February 18, 2008 Carl Lagoze Cornell University XPath Language for addressing parts of an XML document XSLT Xpointer XQuery Tree model based on DOM W3C Recommendation

More information

The Skin Pattern By Rani Pinchuk and Yonat Sharon

The Skin Pattern By Rani Pinchuk and Yonat Sharon The Skin Pattern By Rani Pinchuk and Yonat Sharon Abstract The Skin Pattern is a technique to separate the presentation style of an application (its "skin") from its logic. Keeping the skins separate makes

More information

Turtle Blocks Python Export

Turtle Blocks Python Export Turtle Blocks Python Export A Report on my GSoC Project Marion Zepf October 7, 2013 1 Motivation Turtle Blocks teaches children an important skill in today s world: programming. Its block-based graphical

More information

SQA Advanced Unit Specification: general information

SQA Advanced Unit Specification: general information : general information Unit title: Self Describing Data (XML) Unit code: HP2H 48 Superclass: CB Publication date: August 2017 Source: Scottish Qualifications Authority Version: 01 Unit purpose This Unit

More information

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation.

No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. [MS-MSL]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages,

More information

CONVERTING CONCEPTUAL MODEL XUML TO XML SCHEMA

CONVERTING CONCEPTUAL MODEL XUML TO XML SCHEMA CONVERTING CONCEPTUAL MODEL XUML TO XML SCHEMA XUEMIN ZHANG School of Computer and Information Science, Hubei Engineering University, Xiaogan 432000, Hubei, China ABSTRACT As XML has become the standard

More information

Comp 336/436 - Markup Languages. Fall Semester Week 9. Dr Nick Hayward

Comp 336/436 - Markup Languages. Fall Semester Week 9. Dr Nick Hayward Comp 336/436 - Markup Languages Fall Semester 2018 - Week 9 Dr Nick Hayward DEV Week assessment Course total = 25% project outline and introduction developed using a chosen markup language consider and

More information

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety?

We will talk about Alt-Tab from the usability perspective. Think about: - Is it learnable? - Is it efficient? - What about errors and safety? 1 This lecture s candidate for the Hall of Fame & Shame is the Alt-Tab window switching interface in Microsoft Windows. This interface has been copied by a number of desktop systems, including KDE, Gnome,

More information

Complex type. This subset is enough to model the logical structure of all kinds of non-xml data.

Complex type. This subset is enough to model the logical structure of all kinds of non-xml data. DFDL Introduction For Beginners Lesson 2: DFDL language basics We have seen in lesson 1 how DFDL is not an entirely new language. Its foundation is XML Schema 1.0. Although XML Schema was created as a

More information

An X-Ray on Web-Available XML Schemas

An X-Ray on Web-Available XML Schemas An X-Ray on Web-Available XML Schemas Alberto H. F. Laender, Mirella M. Moro, Cristiano Nascimento and Patrícia Martins Department of Computer Science Federal University of Minas Gerais Belo Horizonte,

More information

Informatics 1: Data & Analysis

Informatics 1: Data & Analysis Informatics 1: Data & Analysis Lecture 9: Trees and XML Ian Stark School of Informatics The University of Edinburgh Tuesday 11 February 2014 Semester 2 Week 5 http://www.inf.ed.ac.uk/teaching/courses/inf1/da

More information

ADT 2005 Lecture 7 Chapter 10: XML

ADT 2005 Lecture 7 Chapter 10: XML ADT 2005 Lecture 7 Chapter 10: XML Stefan Manegold Stefan.Manegold@cwi.nl http://www.cwi.nl/~manegold/ Database System Concepts Silberschatz, Korth and Sudarshan The Challenge: Comic Strip Finder The Challenge:

More information

Mod4j Application Architecture. Eric Jan Malotaux

Mod4j Application Architecture. Eric Jan Malotaux Mod4j Application Architecture Eric Jan Malotaux Mod4j Application Architecture Eric Jan Malotaux 1.2.0 Copyright 2008-2009 Table of Contents 1. Introduction... 1 1.1. Purpose... 1 1.2. References...

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems

JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems JUnit A Study on Applying JUnit Framework to Document Knowledge of Object-Oriented Software Systems Email: {hsieh, s1669021}@ntut.edu.tw JUnit SyncFree 92 [16] SyncFree 1.0 [17] bug fixmerge CVS SyncFree

More information

developer.* The Independent Magazine for Software Professionals Factory Chain: A Design Pattern for Factories with Generics by Hugo Troche

developer.* The Independent Magazine for Software Professionals Factory Chain: A Design Pattern for Factories with Generics by Hugo Troche developer.* The Independent Magazine for Software Professionals Factory Chain: A Design Pattern for Factories with Generics by Hugo Troche Introduction The recent Java 5 (a.k.a. Java 1.5) generics implementation

More information

Chapter 3 Brief Overview of XML

Chapter 3 Brief Overview of XML Slide 3.1 Web Serv vices: Princ ciples & Te echno ology Chapter 3 Brief Overview of XML Mike P. Papazoglou & mikep@uvt.nl Slide 3.2 Topics XML document structure XML schemas reuse Document navigation and

More information

Intellectual Property Rights Notice for Open Specifications Documentation

Intellectual Property Rights Notice for Open Specifications Documentation [MS-SSISPARAMS-Diff]: Intellectual Property Rights tice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats,

More information

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153

Part VII. Querying XML The XQuery Data Model. Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Part VII Querying XML The XQuery Data Model Marc H. Scholl (DBIS, Uni KN) XML and Databases Winter 2005/06 153 Outline of this part 1 Querying XML Documents Overview 2 The XQuery Data Model The XQuery

More information

[MS-MSL]: Mapping Specification Language File Format. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-MSL]: Mapping Specification Language File Format. Intellectual Property Rights Notice for Open Specifications Documentation [MS-MSL]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation ( this documentation ) for protocols,

More information

CS2110 Assignment 3 Inheritance and Trees, Summer 2008

CS2110 Assignment 3 Inheritance and Trees, Summer 2008 CS2110 Assignment 3 Inheritance and Trees, Summer 2008 Due Sunday July 13, 2008, 6:00PM 0 Introduction 0.1 Goals This assignment will help you get comfortable with basic tree operations and algorithms.

More information

TED schemas. Governance and latest updates

TED schemas. Governance and latest updates TED schemas Governance and latest updates Enric Staromiejski Torregrosa Carmelo Greco 9 October 2018 Agenda 1. Objectives 2. Scope 3. TED XSD 3.0.0 Technical harmonisation of all TED artefacts Code lists

More information

DESIGN PATTERN MATCHING

DESIGN PATTERN MATCHING PERIODICA POLYTECHNICA SER. EL. ENG. VOL. 47, NO. 3 4, PP. 205 212 (2003) DESIGN PATTERN MATCHING Dániel PETRI and György CSERTÁN Department of Measurement and Information Systems Budapest University of

More information

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML

Copyright 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley. Chapter 7 XML Chapter 7 XML 7.1 Introduction extensible Markup Language Developed from SGML A meta-markup language Deficiencies of HTML and SGML Lax syntactical rules Many complex features that are rarely used HTML

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static

More information

[MS-OXWSXPROP]: Extended Properties Structure. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-OXWSXPROP]: Extended Properties Structure. Intellectual Property Rights Notice for Open Specifications Documentation [MS-OXWSXPROP]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation ( this documentation ) for protocols,

More information