0% found this document useful (0 votes)
83 views14 pages

Haystack XML Files: Table of Contents

PDSAHaystackCh13-HaystackXmlFiles

Uploaded by

Jason Hall
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
0% found this document useful (0 votes)
83 views14 pages

Haystack XML Files: Table of Contents

PDSAHaystackCh13-HaystackXmlFiles

Uploaded by

Jason Hall
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 14

Chapter 13

Haystack XML Files


TableofContents
Chapter 13 ................................................................................................................... 13-1
Haystack XML Files ..................................................................................................... 13-1
Overview of Haystack XML Files ...................................................................... 13-2
Reason for XML Files ........................................................................... 13-3
??_DotNetTypes XML File.................................................................... 13-3
??_TemplateGroups XML File .............................................................. 13-4
DatabaseServers XML File ................................................................... 13-4
Languages XML File ............................................................................. 13-5
??_DBTypes XML File .......................................................................... 13-6
??_DBTypesExcludes XML File ........................................................... 13-6
??_SPSettings XML File ....................................................................... 13-7
??_Templates XML File ........................................................................ 13-7
Prefixes XML File.................................................................................. 13-7
ReservedWords XML File ..................................................................... 13-8
Relationships between XML Files .................................................................... 13-8
.NET Language XML Files.................................................................... 13-8
Template Group XML Files ................................................................... 13-9
Database Servers XML Files ................................................................ 13-9
Database Servers and SQL Generation XML Files ............................ 13-10
Add New Code Generation Template............................................................. 13-11
.NET Language Templates ............................................................................ 13-11
Database Templates ...................................................................................... 13-12
Add New Default Dynamic SQL Statement .................................................... 13-12
Add New Default Stored Procedure ............................................................... 13-12
Modifying .NET Type Defaults ........................................................................ 13-13

Haystack XML Files


Adding New Database Data Types ................................................................ 13-13
Prefix Replacement XML................................................................................ 13-13
Reserved Words XML .................................................................................... 13-13
Chapter Index ................................................................................................. 13-14

Overview of Haystack XML Files


This document describes the use of the various XML Files that control how
Haystack works and generates code.
In the [InstallFolder]\Haystac\Xml folder is where you will find a lot of XML
files. Haystack relies on these XML files to control how it works. There are no
hard coded values for a specific language features (C# or VB), or for any
specific database such as SQL Server or Oracle. Instead all language or
database specific information is in these XML files, or in some cases, in the
Haystack.exe.Config file.
You may add, edit and delete rows from any of the XML files if you need to. It
is very important that you do not modify the structure of the XML files as
these are tied to a schema definition file (.XSD) . This means that you may
not add or remove any XML elements from these files.
NOTE:

After any changes are made to any of


the XML files, you will need to re-start
Haystack.

Table 1 is a list of the various XML files that you will find in the XML folder.
Where you find the double question marks (??) is where you substitute the
language or database server you are using. For example, ??_DotNetTypes,
could mean CS_DotNetTypes if you are using C# or VB_DotNetTypes if using
Visual Basic. The same goes for SQL Server and Oracle.
XML File Name

13-2

Description

??_DotNetTypes

Contains information about each .NET data type for the language
you are using.

??_TemplateGroups

Contains the list of all the various templates that are used to
generate data classes, WPF user controls, Silverlight user controls,
ASP.NET user controls, and SQL code.

DatabaseServers

Contains the list of the database servers that are supported by

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Overview of Haystack XML Files


Haystack.
Languages

Contains the list of the .NET languages that are supported by


Haystack.

??_DBTypes

Contains information about each database data type for the


database server that you are using.

??_DBTypesExcludes

Contains information about each database data type that you do not
want to generate a property for. This would be used for large BLOB
or large string types that you might want to load dynamically and not
automatically when you select all columns. This can help with
performance of your .NET application.

??_SPSettings

Contains information about stored procedures in your particular


database.

??_Templates

Contains a list of all the SQL and stored procedure templates that
will be generated when you bring up a table in the Haystack Table
Information screen.

Prefixes

A list of prefixes on columns on your tables that you wish to remove.


For example, if you are using Hungarian notation for the fields in
your columns, you can remove the prefixes prior to generating public
property names for your columns.

ReservedWords

Contains a set of reserved words in .NET. If one of your columns in


one of your tables, views or stored procedures matches any words in
this xml file, then that name will be replaced with the ReplaceWith
value in this XML file. This will ensure that no compile errors will
occur from generated code because of a reserved word.

Table 1: Overview of Haystack XML files.

You will find the schema files for each of the above XML files in the
[InstallFolder]\Haystack\Xsd folder.

Reason for XML Files


Instead of storing all of the various information that you find in these XML files
into database tables, we found XML files are so much more generic and
require much less work and maintenance. There are too many differences
between database engines and trying to maintain CRUD SQL for each
database engine would require too much maintenance.

??_DotNetTypes XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-3

Haystack XML Files


Element

Description

DotNetType

The generic .NET CLR Type

LanguageType

The specific language type that is used. For example, System.Decimal


would be the CLR type, yet decimal would be the type for C#.

GenericType

The generic type for this .NET type. Examples are StringType,
NumericType, BinaryType, etc.

Prefix

If you wish to prefix your private variables/fields in your class with


Hungarian notation, you can set this value to the prefix you wish to
use.

IsNullableType

Set to true if this .NET type can be a .NET nullable type.

DefaultValue

The default value to assign to this property when initializing variables.

ValueForNull

What value you want to return if the value read from the database is a
null.

ConvertMethod

The Convert.To??? method to use when generating code.

GetNetTypeMethod

The .???() method to use when generating code.

??_TemplateGroups XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

GroupName

The template group name.

TemplateFileName

The name of the xml file that holds the list of templates to generate.

IsSelected

Is this item group going to be generated?

DatabaseServers XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

Name
ProviderName
DBDataTypesFile
DBDataTypesExcludeFile

13-4

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Overview of Haystack XML Files


SPSettingsFile
TemplatesFile
TemplatesPath
SPBlankFile
AllowSPGeneration
UsePrecisionScale
CommandParameterPrefix
SPParameterPrefix
AndOperator
OrOperator

Languages XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

Name
Code
DotNetTypesFile
TemplateGroupFile
Self
TrueValue
FalseValue
LineEnding
Comment
And
Or
NullablePattern
SystemTypeOf

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-5

Haystack XML Files

??_DBTypes XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

DBtype
DBTypeNumber
GenericType
MaxLength
Precision
MinScale
MaxScale
UseMaxLength
IsNullable
IncludeSize
IsInsertable
IsUpdatable
IncludeInAuditTracking
DotNetType
DbTypeEnum

??_DBTypesExcludes XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

DataType
IsSelectable
IsInsertable
IsUpdatable

13-6

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Overview of Haystack XML Files

??_SPSettings XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

SkipWithThisPrefix
RemoveSuffixAfterThisCharacter

??_Templates XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

EnumName
IsAll
CodeType
DBObjectTypes
RegenOnChange
SQLFileName
SPFileName
SPPrefix
SPSuffix

Prefixes XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

PrefixToStrip

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-7

Haystack XML Files

ReservedWords XML File


Below is a list of the elements contained in this XML file and a description of
what is contained in each element.
Element

Description

Word
ReplaceWith

Relationships between XML Files


The XML files do have relationships between them. You need to be careful to
completely understand these relationships prior to modifying any of the XML
files. Lets take a look at some of these relationships.

.NET Language XML Files


Figure 1 shows the relationship that starts with the Languages file. For each
language there is a ??_DotNetTypes.xml file that contains the list of .NET
data types for that language. So this is a one-to-many relationship. There is
also another one-to-many relation to another XML file called
??_TemplateGroups.xml. In this file is the list of templates that can be
generated for this language. The set of templates can be data classes, WPF
and Silverlight user controls, etc.

Figure 1: .NET Language XML File Relationships

13-8

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Relationships between XML Files

Template Group XML Files


A template group is used to create a list of different templates that can be
generated for a particular language as shown in Figure 2. Each entry in the
??_TemplateGroups file has a separate XML file that will contain a list of text
files that can be used for code generation against a table, view, stored
procedure or XML files.

Figure 2: Template Groups XML Relationship

Database Servers XML Files


Haystack has the ability to support different database engines. For each
engine there has to not only be a database provider DLL, but also the
corresponding entries in the XML files shown in Figure 3. It is not a trivial task
for Haystack to add a new database server. However, it is much simpler
because of the Provider Model that is used in our DLLs and because there is
no hard coding of database-specific nuances.

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-9

Haystack XML Files

Figure 3: Database Servers XML Relationships

Database Servers and SQL Generation XML


Files
When you click on the Info button next to a table or a view, some default SQL
statements and/or stored procedures are generated. All this information
comes from text files. Which text files are used is determined by the
information in the SqlServer_Templates.xml/Oracle_Templates.xml files
(Figure 4). Depending on the database provider you choose, the appropriate
xml file is chosen and the appropriate SQL text is sent through the Haystack
code generation process to create the SQL/Stored Procedures.

13-10

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Add New Code Generation Template

Figure 4: Database Servers and SQL Generation XML Relationships

Add New Code Generation Template


Template Groups.xml
\??_Templates\*.xml
Text Files

.NET Language Templates


Languages.xml
??_DotNetTypes.xml

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-11

Haystack XML Files

Database Templates
DatabaseServers.xml List of databases supported by haystack
??_Templates.xml List of templates for dynamic SQL and stored
procedure
??_DBTypes List of database data types and how they relate to .NET
data types
??_DBTypesExclude List of database data types that you do not wish to
generate properties for. These are typically large BLOB or large string types
that you will only want to retrieve via specialized code
??_SPSettings stored procedure settings

Add New Default Dynamic SQL


Statement

Add New Default Stored Procedure

13-12

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

Modifying .NET Type Defaults

Modifying .NET Type Defaults

Adding New Database Data Types

Prefix Replacement XML

Reserved Words XML

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

13-13

Haystack XML Files

Summary
In this chapter you learned about the various XML files that make up the
Haystack code generator.

Chapter Index
.
.NET Language XML Files, 13-8

D
Database Servers and SQL Generation
XML Files, 13-10
Database Servers XML File, 13-9
DatabaseServers XML File, 13-4
DBTypes XML File, 13-6
DBTypesExcludes XML File, 13-6
DotNetTypes XML File, 13-3

H
Haystack XML Files, 13-2

L
Languages XML File, 13-5

O
Overview of Haystack XML Files, 13-2

13-14

P
Prefixes XML File, 13-7

R
Reason for XML Files, 13-3
Relationships between XML Files, 13-8
ReservedWords XML File, 13-8

S
SPSettings XML File, 13-7

T
Template Group XML Files, 13-9
TemplateGroups XML File, 13-4
Templates XML File, 13-7

X
XML Files for Haystack, 13-2
XML Folder, 13-2
XML Relationships, 13-8
XSD Files, 13-2
XSD Folder, 13-3

Haystack Code Generator for .NET


Copyright 2010-2011 by PDSA, Inc.
All rights reserved. Reproduction is strictly prohibited.

You might also like