mirror of
https://github.com/gnustep/libs-gsweb.git
synced 2025-04-23 15:33:43 +00:00
2000-10-04 Manuel Guesdon <mguesdon@orange-concept.com>
* GSWExtensions.framework/Makefile.preamble: added GDL2 FLAG * GSWExtensions.framework/*/*.html: lowercase tags * GSWExtensionsGSW.framework/*/*.html: lowercase tags * GSWeb.framework/GNUmakefile : added DTDs, modified Files list * GSWeb.framework/GSWApplication.m: commented [GSWHTMLParser printsDiagnostics] changes for GDL2 * GSWeb.framework/GSWBrowser.h/.m: implementation * GSWeb.framework/GSWBundle.m: Parser call modification, handling of .gswi unarchiving * GSWeb.framework/GSWComponentContent.m: Logs * GSWeb.framework/GSWConfig.h: Added GSWEB_DEFAULT_HTML_PARSER_CLASS_NAME * GSWeb.framework/GSWConstants.h/.m: added keys * GSWeb.framework/GSWDisplayGroup.h/.m member variables renamed implementation of some missing parts * GSWeb.framework/GSWRequest.m: remove duplicate languages * GSWeb.framework/GSWTemplateParser.h/.m: make it base class for different parsers * GSWeb.framework/GSWTemplateParserXML.h/.m: XML parser * GSWeb.framework/GSWTemplateParserANTLR.h/.m: ANTLR (old) parser * GSWeb.framework/GSWUtils.h/.m: added SBIsValueIsIn() * GSWeb.framework/GSWeb.h: added includes for parsers * GSWeb.framework/Makefile.postamble: DTDs install * GSWeb.framework/Makefile.preamble: added GDL2 FLAG git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@7703 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
c4b903edee
commit
5f288841af
69 changed files with 8145 additions and 2671 deletions
24
ChangeLog
24
ChangeLog
|
@ -1,3 +1,27 @@
|
|||
2000-10-04 Manuel Guesdon <mguesdon@orange-concept.com>
|
||||
|
||||
* GSWExtensions.framework/Makefile.preamble: added GDL2 FLAG
|
||||
* GSWExtensions.framework/*/*.html: lowercase tags
|
||||
* GSWExtensionsGSW.framework/*/*.html: lowercase tags
|
||||
* GSWeb.framework/GNUmakefile : added DTDs, modified Files list
|
||||
* GSWeb.framework/GSWApplication.m: commented [GSWHTMLParser printsDiagnostics]
|
||||
changes for GDL2
|
||||
* GSWeb.framework/GSWBrowser.h/.m: implementation
|
||||
* GSWeb.framework/GSWBundle.m: Parser call modification, handling of .gswi unarchiving
|
||||
* GSWeb.framework/GSWComponentContent.m: Logs
|
||||
* GSWeb.framework/GSWConfig.h: Added GSWEB_DEFAULT_HTML_PARSER_CLASS_NAME
|
||||
* GSWeb.framework/GSWConstants.h/.m: added keys
|
||||
* GSWeb.framework/GSWDisplayGroup.h/.m member variables renamed
|
||||
implementation of some missing parts
|
||||
* GSWeb.framework/GSWRequest.m: remove duplicate languages
|
||||
* GSWeb.framework/GSWTemplateParser.h/.m: make it base class for different parsers
|
||||
* GSWeb.framework/GSWTemplateParserXML.h/.m: XML parser
|
||||
* GSWeb.framework/GSWTemplateParserANTLR.h/.m: ANTLR (old) parser
|
||||
* GSWeb.framework/GSWUtils.h/.m: added SBIsValueIsIn()
|
||||
* GSWeb.framework/GSWeb.h: added includes for parsers
|
||||
* GSWeb.framework/Makefile.postamble: DTDs install
|
||||
* GSWeb.framework/Makefile.preamble: added GDL2 FLAG
|
||||
|
||||
2000-08-26 Mirko Viviani <mirko.viviani@rccr.cremona.it>
|
||||
|
||||
* GSWMailDelivery.m/.h: rewritten sendEmail: with execlp() to avoid
|
||||
|
|
|
@ -5,12 +5,12 @@
|
|||
</head>
|
||||
|
||||
<body>
|
||||
Configuration file path is specified with Apache directive (/etc/httpd/conf/gsweb.conf is an exemple): <BR>
|
||||
<PRE>GSWeb_ConfigFilePath /etc/httpd/conf/gsweb.conf</PRE><BR>
|
||||
Configuration file path is specified with Apache directive (/etc/httpd/conf/gsweb.conf is an exemple): <br>
|
||||
<PRE>GSWeb_ConfigFilePath /etc/httpd/conf/gsweb.conf</PRE><br>
|
||||
|
||||
|
||||
The format is GNUstep/OpenStep property list.<BR>
|
||||
Here is an exemple with all the possible options:<BR>
|
||||
The format is GNUstep/OpenStep property list.<br>
|
||||
Here is an exemple with all the possible options:<br>
|
||||
|
||||
<PRE>
|
||||
|
||||
|
|
|
@ -1,80 +1,80 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GNUstepWeb Erreurr</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor=white>
|
||||
<html>
|
||||
<head>
|
||||
<title>GNUstepWeb Erreur</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=center VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><br>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="center" valign="top">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Ré-entrer<br>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=VisibleConditional>
|
||||
<HR>
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Application:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ApplicationNameString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Erreurr:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ExceptionNameString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Raison:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ReasonRepetition>
|
||||
<GSWEB NAME=ReasonString></GSWEB><BR>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD colspan=2 ALIGN=LEFT VALIGN=bottom>
|
||||
<HR>
|
||||
<B>Dictionaire des informations utilisateur:</B>
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB NAME=HasUserInfoConditional>
|
||||
<GSWEB NAME=UserInfoRowRepetition>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B><GSWEB NAME=UserInfoKeyString></GSWEB>:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=UserInfoValueString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
<GSWEB NAME=NoUserInfoConditional>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<B>L'Exception n'a pas de dictionaire des informations utilisateur</B>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<gsweb name="VisibleConditional">
|
||||
<hr>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="right" valign="top">
|
||||
<b>Application:</b>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<gsweb name="ApplicationNameString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" valign="top">
|
||||
<b>Erreur:</b>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<gsweb name="ExceptionNameString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right" valign="top">
|
||||
<b>Raison:</b>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<gsweb name="ReasonRepetition">
|
||||
<gsweb name="ReasonString"></gsweb><br>
|
||||
</gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="left" valign="bottom">
|
||||
<hr>
|
||||
<b>Dictionaire des informations utilisateur:</b>
|
||||
</td>
|
||||
</tr>
|
||||
<gsweb name="HasUserInfoConditional">
|
||||
<gsweb name="UserInfoRowRepetition">
|
||||
<tr>
|
||||
<td align="right" valign="top">
|
||||
<b><gsweb name="UserInfoKeyString"></gsweb>:</b>
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<gsweb name="UserInfoValueString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
<gsweb name="NoUserInfoConditional">
|
||||
<tr>
|
||||
<td align="right" valign="top">
|
||||
</td>
|
||||
<td align="left" valign="top">
|
||||
<b>L'Exception n'a pas de dictionaire des informations utilisateur</b>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,26 +1,26 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Erreur: Page Manquante</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor=white>
|
||||
<html>
|
||||
<head>
|
||||
<title>Erreur: Page Manquante</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Ré-entrer<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B> Vous etes retourné trop loin.<BR></B>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Ré-entrer<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b> Vous etes retourné trop loin.<br></b>
|
||||
La limite de
|
||||
<GSWEB NAME=BacktrackingLimitString></GSWEB>
|
||||
a été dépassée.<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<gsweb name="BacktrackingLimitString"></gsweb>
|
||||
a été dépassée.<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,23 +1,23 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Erreur de création de session</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>Erreur de création de session</title>
|
||||
</head>
|
||||
<body BGcolor="white">
|
||||
|
||||
<TABLE BORDER=0 WIDTH="100%">
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Ré-entrer<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B>Votre session n'a pu etre crée.<B>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Ré-entrer<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b>Votre session n'a pu etre crée.<b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,24 +1,24 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Erreur: Session Manquante</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>Erreur: Session Manquante</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0 WIDTH="100%">
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Ré-entrer<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B>Votre session a expiré.<B>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Ré-entrer<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b>Votre session a expiré.<b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1 +1 @@
|
|||
<GSWEB NAME=Link><GSWEB NAME=Image></GSWEB></GSWEB> <GSWEB NAME=Label></GSWEB><GSWEB NAME=Condition><GSWEB NAME=Content></GSWEB></GSWEB>
|
||||
<gsweb name="Link"><gsweb name="Image"></gsweb></gsweb> <gsweb name="Label"></gsweb><gsweb name="Condition"><gsweb name="Content"></gsweb></gsweb>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1 +1 @@
|
|||
<GSWEB NAME=Repetition><GSWEB NAME=Content></GSWEB></GSWEB>
|
||||
<gsweb name="Repetition"><gsweb name="Content"></gsweb></gsweb>
|
|
@ -1,80 +1,80 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>GNUstepWeb Error</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>GNUstepWeb Error</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=center VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><br>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="center" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Re-enter<br>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=VisibleConditional>
|
||||
<HR>
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Application:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ApplicationNameString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Error:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ExceptionNameString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B>Reason:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=ReasonRepetition>
|
||||
<GSWEB NAME=ReasonString></GSWEB><BR>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD colspan=2 ALIGN=LEFT VALIGN=bottom>
|
||||
<HR>
|
||||
<B>User Info Dictionary:</B>
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB NAME=HasUserInfoConditional>
|
||||
<GSWEB NAME=UserInfoRowRepetition>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
<B><GSWEB NAME=UserInfoKeyString></GSWEB>:</B>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<GSWEB NAME=UserInfoValueString></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
<GSWEB NAME=NoUserInfoConditional>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT VALIGN=TOP>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=TOP>
|
||||
<B>Exception has no userInfo dictionary</B>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<gsweb name="VisibleConditional">
|
||||
<hr>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="RIGHT" Valign="TOP">
|
||||
<b>Application:</b>
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<gsweb name="ApplicationNameString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="RIGHT" Valign="TOP">
|
||||
<b>Error:</b>
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<gsweb name="ExceptionNameString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="RIGHT" Valign="TOP">
|
||||
<b>Reason:</b>
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<gsweb name="ReasonRepetition">
|
||||
<gsweb name="ReasonString"></gsweb><br>
|
||||
</gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<TD colspan="2" align="LEFT" Valign="bottom">
|
||||
<hr>
|
||||
<b>User Info Dictionary:</b>
|
||||
</td>
|
||||
</tr>
|
||||
<gsweb name="HasUserInfoConditional">
|
||||
<gsweb name="UserInfoRowRepetition">
|
||||
<tr>
|
||||
<td align="RIGHT" Valign="TOP">
|
||||
<b><gsweb name="UserInfoKeyString"></gsweb>:</b>
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<gsweb name="UserInfoValueString"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
<gsweb name="NoUserInfoConditional">
|
||||
<tr>
|
||||
<td align="RIGHT" Valign="TOP">
|
||||
</td>
|
||||
<td align="LEFT" Valign="TOP">
|
||||
<b>Exception has no userInfo dictionary</b>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
4
GSWExtensions.framework/GSWIFrame.gswc/GSWIFrame.gswi
Normal file
4
GSWExtensions.framework/GSWIFrame.gswc/GSWIFrame.gswi
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1 +1 @@
|
|||
<GSWEB NAME=IFrameContainer><GSWEB NAME=AltContent></GSWEB></GSWEB>
|
||||
<gsweb name="IFrameContainer"><gsweb name="AltContent"></gsweb></gsweb>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1 +1 @@
|
|||
<GSWEB NAME=MetaRefresh></GSWEB>
|
||||
<gsweb name="MetaRefresh"></gsweb>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,26 +1,26 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Missing Page Error</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>Missing Page Error</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Re-enter<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B> You backtracked too far.<BR></B>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Re-enter<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b> You backtracked too far.<br></b>
|
||||
The application backtracking limit of
|
||||
<GSWEB NAME=BacktrackingLimitString></GSWEB>
|
||||
has been exceeded.<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<gsweb name="BacktrackingLimitString"></gsweb>
|
||||
has been exceeded.<br>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
||||
<!DOCTYPE html PUBLIC "-//IETF//DTD html//EN">
|
||||
<html>
|
||||
<head>
|
||||
<title>
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,23 +1,23 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Session Creation Error</TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>Session Creation Error</title>
|
||||
</head>
|
||||
<body BGcolor="white">
|
||||
|
||||
<TABLE BORDER=0 WIDTH="100%">
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Re-enter<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B>Your session could not be created.<B>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Re-enter<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b>Your session could not be created.<b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,23 +1,23 @@
|
|||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Missing Session Error</TITLE>
|
||||
</HEAD>
|
||||
<BODY bgcolor="white">
|
||||
<html>
|
||||
<head>
|
||||
<title>Missing Session Error</title>
|
||||
</head>
|
||||
<body bgcolor="white">
|
||||
|
||||
<TABLE BORDER=0 WIDTH="100%">
|
||||
<TR>
|
||||
<TD ALIGN=CENTER VALIGN=TOP>
|
||||
<GSWEB NAME=ExclamationImage></GSWEB><BR>
|
||||
Re-enter<BR>
|
||||
<GSWEB NAME=ReenterHyperlink>
|
||||
<B><GSWEB NAME=ApplicationNameString></GSWEB></B>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN=LEFT VALIGN=MIDDLE>
|
||||
<B>Your session has timed out.<B>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<table border="0" width="100%">
|
||||
<tr>
|
||||
<td align="CENTER" Valign="TOP">
|
||||
<gsweb name="ExclamationImage"></gsweb><br>
|
||||
Re-enter<br>
|
||||
<gsweb name="ReenterHyperlink">
|
||||
<b><gsweb name="ApplicationNameString"></gsweb></b>
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="LEFT" Valign="MIDDLE">
|
||||
<b>Your session has timed out.<b>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,306 +1,288 @@
|
|||
<HTML>
|
||||
<HEAD><TITLE></TITLE>
|
||||
</HEAD>
|
||||
<BODY BGCOLOR=#FFFFFF>
|
||||
<html>
|
||||
<head><title></title>
|
||||
</head>
|
||||
<body BGcolor="#FFFFFF">
|
||||
|
||||
<GSWEB NAME=REFUSED>
|
||||
<CENTER>
|
||||
<h2><FONT color=#FF0000>This Request Requires A User Login</FONT></h2>
|
||||
<BR>
|
||||
<gsweb name="REFUSED">
|
||||
<center>
|
||||
<h2><font color="#FF0000">This Request Requires A User Login</font></h2>
|
||||
<br>
|
||||
<!-- ****
|
||||
<GSWEB name=Form1>
|
||||
<TABLE border=1 cellPadding=2 cellSpacing=0 bgcolor="#f6ffff">
|
||||
<TABLE BORDER=0 WIDTH=80%>
|
||||
<TR align=CENTER>
|
||||
<TD>
|
||||
<gsweb name="Form1">
|
||||
<table border="1" cellPadding="2" cellSpacing="0" bgcolor="#f6ffff">
|
||||
<table border="0" width="80%">
|
||||
<TR align="CENTER">
|
||||
<td>
|
||||
User
|
||||
</TD>
|
||||
<TD>
|
||||
<GSWEB NAME="USERNAME"></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR align=CENTER>
|
||||
<TD>
|
||||
</td>
|
||||
<td>
|
||||
<gsweb name="USERNAME"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<TR align="CENTER">
|
||||
<td>
|
||||
Password
|
||||
</TD>
|
||||
<TD>
|
||||
<GSWEB NAME="PASSWORD"></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<GSWEB NAME="SUBMIT"></GSWEB>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TABLE>
|
||||
<BR>
|
||||
</GSWEB>
|
||||
********** -->
|
||||
</CENTER>
|
||||
</GSWEB><GSWEB NAME=ALLOWED>
|
||||
|
||||
<GSWEB NAME=Form4><TABLE BORDER=0 WIDTH=100%>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER COLSPAN=2>
|
||||
<H2>Statistics For <FONT color=#FF0000>
|
||||
<GSWEB name=String2></GSWEB>
|
||||
<GSWEB name=Conditional2>
|
||||
#<FONT color=#FF0000>
|
||||
<GSWEB name=String6></GSWEB>
|
||||
</FONT>
|
||||
</GSWEB>
|
||||
</FONT>On Host <FONT color=#FF0000>
|
||||
<GSWEB name=String11></GSWEB>
|
||||
</FONT>
|
||||
</H2>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER>
|
||||
<GSWEB NAME="REFRESH"></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE></GSWEB><HR>
|
||||
|
||||
<BR>
|
||||
|
||||
<CENTER>
|
||||
<TABLE BORDER=2 CELLPADDING=4 CELLSPACING=2 bgcolor="#d0d0d0">
|
||||
<TR align = CENTER bgcolor="#b0b0b0">
|
||||
<TD COLSPAN=6><FONT SIZE=+1><B>Application Statistics</B></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>   </TD>
|
||||
<TD ALIGN=CENTER><FONT SIZE=-1>Transactions</FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT SIZE=-1>Average Transaction<BR>Time</FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT SIZE=-1>Average Idle<BR>Time</FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT SIZE=-1>Moving Average*<BR>Transaction Time</FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT SIZE=-1>Moving Average*<BR>Idle Time</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Overall</TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=Transactions></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=AvgTransactionTime></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=AvgIdleTime></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=MovingAvgTransactionTime></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=MovingAvgIdleTime></GSWEB></FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Component Actions</TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=ComponentActionTransactions></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=AvgComponentActionTransactions></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT size=-1>NA</FONT></TD>
|
||||
<TD ALIGN=CENTER>   </TD>
|
||||
<TD ALIGN=CENTER><FONT size=-1>NA</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Direct Actions</TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=DirectActionTransactions></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB name=AvgDirectActionTransactions></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT size=-1>NA</FONT></TD>
|
||||
<TD ALIGN=CENTER>   </TD>
|
||||
<TD ALIGN=CENTER><FONT size=-1>NA</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Started at</TD>
|
||||
<TD COLSPAN=5>
|
||||
<FONT color=#0000FF><GSWEB name=String21></GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD>Running time</TD>
|
||||
<TD COLSPAN=5>
|
||||
<FONT color=#0000FF><GSWEB name=RunningTime></GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
</TABLE>
|
||||
<FONT SIZE=-1>
|
||||
* The sample size for Moving Averages is <FONT color=#0000FF><GSWEB name=MovingAvgSampleSize></GSWEB></FONT> transactions.
|
||||
</FONT>
|
||||
</CENTER>
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<TABLE BORDER=2 CELLPADDING=4 CELLSPACING=2 bgcolor="#d0d0d0">
|
||||
<TR align=CENTER bgcolor="#b0b0b0">
|
||||
<TD COLSPAN=2><FONT SIZE=+1><B>Sessions Statistics</B></FONT></TD>
|
||||
</TR>
|
||||
<GSWEB name=SessionsRepetition>
|
||||
<TR>
|
||||
<TD>
|
||||
<GSWEB name=SessionsKeyCell>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD>
|
||||
<FONT color=#0000FF><GSWEB name=SessionsValueCell>
|
||||
</GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
<GSWEB NAME="ISMAXSESSIONS">
|
||||
<TR>
|
||||
<TD COLSPAN=2>Peak Concurrent Sessions at<BR><FONT color=#0000FF><GSWEB NAME="MaxSessions"></GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
<BR>
|
||||
<CENTER>
|
||||
<TABLE BORDER=0 WIDTH="100%"> <!-- spacer table - invisible -->
|
||||
<TR><TD ALIGN=CENTER>
|
||||
<TABLE BORDER=2 CELLPADDING=4 CELLSPACING=2 bgcolor="#d0d0d0">
|
||||
<TR align=CENTER bgcolor="#b0b0b0">
|
||||
<TD COLSPAN=2><B>Memory Usage (bytes)</B>
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB name=MemoryRepetition>
|
||||
<TR>
|
||||
<TD>
|
||||
<GSWEB name=MemoryKeyCell></GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN="RIGHT">
|
||||
<FONT color=#0000FF><GSWEB name=MemoryValueCell></GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</TD><TD ALIGN=CENTER>
|
||||
<TABLE BORDER=2 CELLPADDING=4 CELLSPACING=2 bgcolor="#d0d0d0">
|
||||
<TR align = CENTER bgcolor="#b0b0b0">
|
||||
<TD COLSPAN=2><B>Avg. Memory Usage Per Session (bytes)</B>
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB name=SessionMemoryRepetition>
|
||||
<TR>
|
||||
<TD>
|
||||
<GSWEB name=SessionMemoryKeyCell>
|
||||
</GSWEB>
|
||||
</TD>
|
||||
<TD ALIGN="RIGHT">
|
||||
<FONT color=#0000FF><GSWEB name=SessionMemoryValueCell>
|
||||
</GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</TD></TR></TABLE>
|
||||
</CENTER>
|
||||
|
||||
<BR>
|
||||
|
||||
<GSWEB NAME=ISLASTUSER>
|
||||
Response Descriptions For Last User :
|
||||
<BR>
|
||||
<CENTER>
|
||||
<table border=2 cellpadding=4 cellspacing=2 bgcolor="#d0d0d0" WIDTH="80%">
|
||||
<GSWEB name=SessionStatsRepetition>
|
||||
<TR>
|
||||
<TD>
|
||||
<FONT color=#0000FF><GSWEB name=SessionStatsField>
|
||||
</GSWEB></FONT>
|
||||
</TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</td>
|
||||
<td>
|
||||
<gsweb name="PASSWORD"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<gsweb name="SUBMIT"></gsweb>
|
||||
</tr>
|
||||
</table>
|
||||
</CENTER>
|
||||
</GSWEB><HR>
|
||||
</table>
|
||||
<br>
|
||||
</gsweb>
|
||||
********** -->
|
||||
</center>
|
||||
</gsweb><gsweb name="ALLOWED">
|
||||
|
||||
<CENTER>
|
||||
<TABLE border=2 cellpadding=4 cellspacing=2 width="80%" bgcolor="#d0d0d0">
|
||||
<TR><TD COLSPAN=5 ALIGN=CENTER BGCOLOR="#b0b0b0">
|
||||
<FONT SIZE=+1><B> Component Action Statistics </B></FONT>
|
||||
</TD></TR>
|
||||
<TR align=CENTER bgcolor="#d6d8df">
|
||||
<TD WIDTH = "20%">
|
||||
Name
|
||||
</TD>
|
||||
<TD WIDTH = "50%">Served
|
||||
</TD>
|
||||
<TD WIDTH = "10%">
|
||||
Min
|
||||
</TD>
|
||||
<TD WIDTH = "10%">
|
||||
Avg
|
||||
</TD>
|
||||
<TD WIDTH = "10%">
|
||||
Max
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB NAME=PagesRepetition>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=PageName></GSWEB></FONT></TD>
|
||||
<TD align=left><GSWEB NAME="PageCountBar"></GSWEB></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=PageMin></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><B><GSWEB NAME=PageAvg></GSWEB></B></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=PageMax></GSWEB></FONT></TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
<gsweb name="Form4"><table border="0" width="100%">
|
||||
<tr>
|
||||
<td align="CENTER" COLSPAN="2">
|
||||
<h2>Statistics For <font color="#FF0000">
|
||||
<gsweb name="String2"></gsweb>
|
||||
<gsweb name="Conditional2">
|
||||
#<font color="#FF0000">
|
||||
<gsweb name="String6"></gsweb>
|
||||
</font>
|
||||
</gsweb>
|
||||
</font>On Host <font color="#FF0000">
|
||||
<gsweb name="String11"></gsweb>
|
||||
</font>
|
||||
</h2>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="CENTER">
|
||||
<gsweb name="REFRESH"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
</table></gsweb><hr>
|
||||
|
||||
<HR>
|
||||
<br>
|
||||
|
||||
<CENTER>
|
||||
<TABLE border=2 cellpadding=4 cellspacing=2 width="80%" bgcolor="#d0d0d0">
|
||||
<TR><TD COLSPAN=5 ALIGN=CENTER BGCOLOR="#b0b0b0">
|
||||
<FONT SIZE=+1><B> Direct Action Statistics </B></FONT>
|
||||
</TD></TR>
|
||||
<TR align=CENTER bgcolor="#d6d8df">
|
||||
<TD WIDTH="20%">Name</TD>
|
||||
<TD WIDTH="50%">Served</TD>
|
||||
<TD WIDTH="10%">Min</TD>
|
||||
<TD WIDTH="10%">Avg</TD>
|
||||
<TD WIDTH="10%">Max</TD>
|
||||
</TR>
|
||||
<GSWEB NAME=ActionsRepetition>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=ActionName></GSWEB></FONT></TD>
|
||||
<TD align=left><GSWEB NAME="ActionBar"></GSWEB></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=ActionMin></GSWEB></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><B><GSWEB NAME=ActionAvg></GSWEB></B></FONT></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=ActionMax></GSWEB></FONT></TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
<center>
|
||||
<table border="2" CELLPADDING="4" CELLSPACING="2" bgcolor="#d0d0d0">
|
||||
<TR align="CENTER" bgcolor="#b0b0b0">
|
||||
<TD COLSPAN="6"><font SIZE="+1"><b>Application Statistics</b></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>   </td>
|
||||
<td align="CENTER"><font SIZE="-1">Transactions</font></td>
|
||||
<td align="CENTER"><font SIZE="-1">Average Transaction<br>Time</font></td>
|
||||
<td align="CENTER"><font SIZE="-1">Average Idle<br>Time</font></td>
|
||||
<td align="CENTER"><font SIZE="-1">Moving Average*<br>Transaction Time</font></td>
|
||||
<td align="CENTER"><font SIZE="-1">Moving Average*<br>Idle Time</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Overall</td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="Transactions"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="AvgTransactionTime"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="AvgIdleTime"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="MovingAvgTransactionTime"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="MovingAvgIdleTime"></gsweb></font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Component Actions</td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="ComponentActionTransactions"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="AvgComponentActionTransactions"></gsweb></font></td>
|
||||
<td align="CENTER"><font size="-1">NA</font></td>
|
||||
<td align="CENTER">   </td>
|
||||
<td align="CENTER"><font size="-1">NA</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Direct Actions</td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="DirectActionTransactions"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="AvgDirectActionTransactions"></gsweb></font></td>
|
||||
<td align="CENTER"><font size="-1">NA</font></td>
|
||||
<td align="CENTER">   </td>
|
||||
<td align="CENTER"><font size="-1">NA</font></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Started at</td>
|
||||
<TD COLSPAN="5">
|
||||
<font color="#0000FF"><gsweb name="String21"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Running time</td>
|
||||
<TD COLSPAN="5">
|
||||
<font color="#0000FF"><gsweb name="RunningTime"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<HR>
|
||||
</table>
|
||||
<font SIZE="-1">
|
||||
* The sample size for Moving Averages is <font color="#0000FF"><gsweb name="MovingAvgSampleSize"></gsweb></font> transactions.
|
||||
</font>
|
||||
</center>
|
||||
|
||||
<CENTER>
|
||||
<TABLE border=2 cellPadding=4 cellspacing=2 width="80%" bgcolor="#d0d0d0">
|
||||
<TR><TD COLSPAN=3 ALIGN=CENTER BGCOLOR="#b0b0b0">
|
||||
<FONT SIZE=+1><B>Detailed Statistics</B></FONT>
|
||||
</TD></TR>
|
||||
<TR align=CENTER bgcolor="#d6d8df">
|
||||
<TD WIDTH="40%">
|
||||
Response Description
|
||||
</TD>
|
||||
<TD WIDTH="50%">Percent Of Total
|
||||
</TD>
|
||||
<TD WIDTH="10%">
|
||||
Served
|
||||
</TD>
|
||||
</TR>
|
||||
<GSWEB NAME=DetailsRepetition>
|
||||
<TR>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=DetailName></GSWEB></FONT></TD>
|
||||
<TD align=left><GSWEB NAME="BAR_DETAILS"></GSWEB></TD>
|
||||
<TD ALIGN=CENTER><FONT color=#0000FF><GSWEB NAME=DetailCount></GSWEB></FONT></TD>
|
||||
</TR>
|
||||
</GSWEB>
|
||||
</TABLE>
|
||||
<BR>
|
||||
<GSWEB NAME=ISLOGPATH>
|
||||
<HR>
|
||||
<BR>
|
||||
Statistics Details Saved In Common Log Format In File <FONT color=#0000FF><GSWEB NAME=LOGPATH></GSWEB></FONT></GSWEB>
|
||||
<hr>
|
||||
<center>
|
||||
<table border="2" CELLPADDING="4" CELLSPACING="2" bgcolor="#d0d0d0">
|
||||
<TR align="CENTER" bgcolor="#b0b0b0">
|
||||
<TD COLSPAN="2"><font SIZE="+1"><b>Sessions Statistics</b></font></td>
|
||||
</tr>
|
||||
<gsweb name="SessionsRepetition">
|
||||
<tr>
|
||||
<td>
|
||||
<gsweb name="SessionsKeyCell"></gsweb>
|
||||
</td>
|
||||
<td>
|
||||
<font color="#0000FF"><gsweb name="SessionsValueCell"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
<gsweb name="ISMAXSESSIONS">
|
||||
<tr>
|
||||
<TD COLSPAN="2">Peak Concurrent Sessions at<br><font color="#0000FF"><gsweb name="MaxSessions"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</center>
|
||||
<br>
|
||||
<center>
|
||||
<table border=0 width="100%"> <!-- spacer table - invisible -->
|
||||
<tr><td align="CENTER">
|
||||
<table border="2" CELLPADDING="4" CELLSPACING="2" bgcolor="#d0d0d0">
|
||||
<TR align="CENTER" bgcolor="#b0b0b0">
|
||||
<TD COLSPAN="2"><b>Memory Usage (bytes)</b>
|
||||
</td>
|
||||
</tr>
|
||||
<gsweb name="MemoryRepetition">
|
||||
<tr>
|
||||
<td>
|
||||
<gsweb name="MemoryKeyCell"></gsweb>
|
||||
</td>
|
||||
<td align="RIGHT">
|
||||
<font color="#0000FF"><gsweb name="MemoryValueCell"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</td><td align="CENTER">
|
||||
<table border="2" CELLPADDING="4" CELLSPACING="2" bgcolor="#d0d0d0">
|
||||
<TR align="CENTER" bgcolor="#b0b0b0">
|
||||
<TD COLSPAN="2"><b>Avg. Memory Usage Per Session (bytes)</b>
|
||||
</td>
|
||||
</tr>
|
||||
<gsweb name="SessionMemoryRepetition">
|
||||
<tr>
|
||||
<td>
|
||||
<gsweb name="SessionMemoryKeyCell">
|
||||
</gsweb>
|
||||
</td>
|
||||
<td align="RIGHT">
|
||||
<font color="#0000FF"><gsweb name="SessionMemoryValueCell"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</td></tr></table>
|
||||
</center>
|
||||
|
||||
<HR>
|
||||
<BR>
|
||||
<A HREF="http://www.sbuilders.com"><GSWEB name=PoweredByImage></GSWEB></A>
|
||||
</CENTER>
|
||||
</GSWEB>
|
||||
</BODY>
|
||||
</HTML>
|
||||
<br>
|
||||
|
||||
<gsweb name="ISLASTUSER">
|
||||
Response Descriptions For Last User :
|
||||
<br>
|
||||
<center>
|
||||
<table border="2" cellpadding="4" cellspacing="2" bgcolor="#d0d0d0" width="80%">
|
||||
<gsweb name="SessionStatsRepetition">
|
||||
<tr>
|
||||
<td>
|
||||
<font color="#0000FF"><gsweb name="SessionStatsField"></gsweb></font>
|
||||
</td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</center>
|
||||
</gsweb><hr>
|
||||
|
||||
<center>
|
||||
<table border="2" cellpadding="4" cellspacing="2" width="80%" bgcolor="#d0d0d0">
|
||||
<tr><TD COLSPAN="5" align="CENTER" BGcolor="#b0b0b0">
|
||||
<font SIZE="+1"><b> Component Action Statistics </b></font>
|
||||
</td></tr>
|
||||
<TR align="CENTER" bgcolor="#d6d8df">
|
||||
<TD WIDTH = "20%">Name</td>
|
||||
<TD WIDTH = "50%">Served</td>
|
||||
<TD WIDTH = "10%">Min</td>
|
||||
<TD WIDTH = "10%">Avg</td>
|
||||
<TD WIDTH = "10%">Max</td>
|
||||
</tr>
|
||||
<gsweb name="PagesRepetition">
|
||||
<tr>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="PageName"></gsweb></font></td>
|
||||
<td align=left><gsweb name="PageCountBar"></gsweb></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="PageMin"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><b><gsweb name="PageAvg"></gsweb></b></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="PageMax"></gsweb></font></td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<table border="2" cellpadding="4" cellspacing="2" width="80%" bgcolor="#d0d0d0">
|
||||
<tr><TD COLSPAN="5" align="CENTER" BGcolor="#b0b0b0">
|
||||
<font SIZE="+1"><b> Direct Action Statistics </b></font>
|
||||
</td></tr>
|
||||
<TR align="CENTER" bgcolor="#d6d8df">
|
||||
<TD width="20%">Name</td>
|
||||
<TD width="50%">Served</td>
|
||||
<TD width="10%">Min</td>
|
||||
<TD width="10%">Avg</td>
|
||||
<TD width="10%">Max</td>
|
||||
</tr>
|
||||
<gsweb name="ActionsRepetition">
|
||||
<tr>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="ActionName"></gsweb></font></td>
|
||||
<td align=left><gsweb name="ActionBar"></gsweb></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="ActionMin"></gsweb></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><b><gsweb name="ActionAvg"></gsweb></b></font></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="ActionMax"></gsweb></font></td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
</center>
|
||||
|
||||
<hr>
|
||||
|
||||
<center>
|
||||
<table border="2" cellPadding="4" cellspacing="2" width="80%" bgcolor="#d0d0d0">
|
||||
<tr><TD COLSPAN="3" align="CENTER" BGcolor="#b0b0b0">
|
||||
<font SIZE="+1"><b>Detailed Statistics</b></font>
|
||||
</td></tr>
|
||||
<TR align="CENTER" bgcolor="#d6d8df">
|
||||
<TD width="40%">Response Description</td>
|
||||
<TD width="50%">Percent Of Total</td>
|
||||
<TD width="10%">Served</td>
|
||||
</tr>
|
||||
<gsweb name="DetailsRepetition">
|
||||
<tr>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="DetailName"></gsweb></font></td>
|
||||
<td align=left><gsweb name="BAR_DETAILS"></gsweb></td>
|
||||
<td align="CENTER"><font color="#0000FF"><gsweb name="DetailCount"></gsweb></font></td>
|
||||
</tr>
|
||||
</gsweb>
|
||||
</table>
|
||||
<br>
|
||||
<gsweb name="ISLOGPATH">
|
||||
<hr>
|
||||
<br>
|
||||
Statistics Details Saved In Common Log Format In File <font color="#0000FF"><gsweb name="LOGPATH"></gsweb></font></gsweb>
|
||||
|
||||
<hr>
|
||||
<br>
|
||||
<A HREF="http://www.gnustepweb.org"><gsweb name="PoweredByImage"></gsweb></A>
|
||||
</center>
|
||||
</gsweb>
|
||||
</body>
|
||||
</html>
|
4
GSWExtensions.framework/GSWTable.gswc/GSWTable.gswi
Normal file
4
GSWExtensions.framework/GSWTable.gswc/GSWTable.gswi
Normal file
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
<GSWEB name=TableContainer>
|
||||
<GSWEB name=RowRepetition>
|
||||
<GSWEB name=TableRow>
|
||||
<GSWEB name=ColRepetition>
|
||||
<GSWEB name=CellContainer><GSWEB name=Content></GSWEB></GSWEB>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
<gsweb name="TableContainer">
|
||||
<gsweb name="RowRepetition">
|
||||
<gsweb name="TableRow">
|
||||
<gsweb name="ColRepetition">
|
||||
<gsweb name="CellContainer"><gsweb name="Content"></gsweb></gsweb>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"GSWeb Version" = "1.0";
|
||||
encoding = NSISOLatin1StringEncoding;
|
||||
}
|
|
@ -1 +1 @@
|
|||
<GSWEB name=SomethingDisplayed><GSWEB name=String></GSWEB></GSWEB><GSWEB name=NothingDisplayed> </GSWEB>
|
||||
<gsweb name="SomethingDisplayed"><gsweb name="String"></gsweb></gsweb><gsweb name="NothingDisplayed"> </gsweb>
|
|
@ -36,7 +36,11 @@
|
|||
ADDITIONAL_CPPFLAGS =
|
||||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
ADDITIONAL_OBJCFLAGS =
|
||||
ifeq ($(GDL2), yes)
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN -DGDL2
|
||||
else
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN
|
||||
endif
|
||||
|
||||
# Additional flags to pass to the C compiler
|
||||
ADDITIONAL_CFLAGS =
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
<GSWEB NAME=Form>
|
||||
<GSWEB NAME=CurrentDate></GSWEB>
|
||||
<CENTER>
|
||||
<GSWEB NAME=MessageConditional>
|
||||
<B><GSWEB NAME=Message></GSWEB><BR></B>
|
||||
</GSWEB>
|
||||
<TABLE BORDER=1>
|
||||
<TR>
|
||||
<TD>
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT>Nom utilisateur:</TD>
|
||||
<TD><GSWEB NAME=User></GSWEB></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT>Mot de Passe:</TD>
|
||||
<TD><GSWEB NAME=Password></GSWEB></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD COLSPAN=2 ALIGN=CENTER>
|
||||
<GSWEB NAME=Submit></GSWEB>
|
||||
<GSWEB NAME=Reset></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
</GSWEB>
|
||||
<gsweb name="Form">
|
||||
<gsweb name="CurrentDate"></gsweb>
|
||||
<center>
|
||||
<gsweb name="MessageConditional">
|
||||
<b><gsweb name="Message"></gsweb><br></b>
|
||||
</gsweb>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="RIGHT">Nom utilisateur:</td>
|
||||
<td><gsweb name="User"></gsweb></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="RIGHT">Mot de Passe:</td>
|
||||
<td><gsweb name="Password"></gsweb></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<TD COLSPAN="2" align="CENTER">
|
||||
<gsweb name="Submit"></gsweb>
|
||||
<gsweb name="Reset"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</gsweb>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<GSWEB NAME=Form>
|
||||
<GSWEB NAME=ViewCondition>
|
||||
<GSWEB NAME=FileLink></GSWEB>
|
||||
</GSWEB>
|
||||
<GSWEB NAME=UploadFile></GSWEB><BR>
|
||||
<GSWEB NAME=SubmitButton></GSWEB>
|
||||
<GSWEB NAME=DeleteButton></GSWEB>
|
||||
</GSWEB>
|
||||
<gsweb name="Form">
|
||||
<gsweb name="ViewCondition">
|
||||
<gsweb name="FileLink"></gsweb>
|
||||
</gsweb>
|
||||
<gsweb name="UploadFile"></gsweb><br>
|
||||
<gsweb name="SubmitButton"></gsweb>
|
||||
<gsweb name="DeleteButton"></gsweb>
|
||||
</gsweb>
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
<GSWEB NAME=Form>
|
||||
<GSWEB NAME=CurrentDate></GSWEB>
|
||||
<CENTER>
|
||||
<GSWEB NAME=MessageConditional>
|
||||
<B><GSWEB NAME=Message></GSWEB><BR></B>
|
||||
</GSWEB>
|
||||
<TABLE BORDER=1>
|
||||
<TR>
|
||||
<TD>
|
||||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT>User:</TD>
|
||||
<TD><GSWEB NAME=User></GSWEB></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD ALIGN=RIGHT>Password:</TD>
|
||||
<TD><GSWEB NAME=Password></GSWEB></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD COLSPAN=2 ALIGN=CENTER>
|
||||
<GSWEB NAME=Submit></GSWEB>
|
||||
<GSWEB NAME=Reset></GSWEB>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</CENTER>
|
||||
</GSWEB>
|
||||
<gsweb name="Form">
|
||||
<gsweb name="CurrentDate"></gsweb>
|
||||
<center>
|
||||
<gsweb name="MessageConditional">
|
||||
<b><gsweb name="Message"></gsweb><br></b>
|
||||
</gsweb>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td align="RIGHT">User:</td>
|
||||
<td><gsweb name="User"></gsweb></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="RIGHT">Password:</td>
|
||||
<td><gsweb name="Password"></gsweb></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<TD COLSPAN="2" align="CENTER">
|
||||
<gsweb name="Submit"></gsweb>
|
||||
<gsweb name="Reset"></gsweb>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</center>
|
||||
</gsweb>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<GSWEB NAME=Form>
|
||||
<CENTER>
|
||||
<GSWEB NAME=MessageConditional>
|
||||
<P><B><FONT COLOR=red><GSWEB NAME=ErrorMessage></GSWEB></FONT></B><BR></P><P><BR></P>
|
||||
</GSWEB>
|
||||
</CENTER>
|
||||
<GSWEB NAME=Form>
|
||||
<GSWEB NAME=Content></GSWEB>
|
||||
<GSWEB NAME=Submit></GSWEB>
|
||||
<GSWEB NAME=Reset></GSWEB>
|
||||
</GSWEB>
|
||||
</GSWEB>
|
||||
<gsweb name="Form">
|
||||
<center>
|
||||
<gsweb name="MessageConditional">
|
||||
<p><b><font color="red"><gsweb name="ErrorMessage"></gsweb></font></b><br></P><p><br></P>
|
||||
</gsweb>
|
||||
</center>
|
||||
<gsweb name="Form">
|
||||
<gsweb name="Content"></gsweb>
|
||||
<gsweb name="Submit"></gsweb>
|
||||
<gsweb name="Reset"></gsweb>
|
||||
</gsweb>
|
||||
</gsweb>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<TABLE BORDER=0>
|
||||
<TR>
|
||||
<TD><GSWEB NAME=TabBarLeftBorder></GSWEB></TD>
|
||||
<GSWEB NAME=Repetition>
|
||||
<TD><GSWEB NAME=TabLeftBorder></GSWEB></TD>
|
||||
<TD><GSWEB NAME=Tab><GSWEB NAME=TabImageCondition><GSWEB NAME=TabImage></GSWEB></GSWEB><GSWEB NAME=TabTextCondition><GSWEB NAME=TabText></GSWEB></GSWEB></GSWEB></TD>
|
||||
<TD><GSWEB NAME=TabRightBorder></GSWEB></TD>
|
||||
</GSWEB>
|
||||
<TD><GSWEB NAME=TabBarLeftBorder></GSWEB></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<table border="0">
|
||||
<tr>
|
||||
<td><gsweb name="TabBarLeftBorder"></gsweb></td>
|
||||
<gsweb name="Repetition">
|
||||
<td><gsweb name="TabLeftBorder"></gsweb></td>
|
||||
<td><gsweb name="Tab"><gsweb name="TabImageCondition"><gsweb name="TabImage"></gsweb></gsweb><gsweb name="TabTextCondition"><gsweb name="TabText"></gsweb></gsweb></gsweb></td>
|
||||
<td><gsweb name="TabRightBorder"></gsweb></td>
|
||||
</gsweb>
|
||||
<td><gsweb name="TabBarLeftBorder"></gsweb></td>
|
||||
</tr>
|
||||
</table>
|
|
@ -1,7 +1,7 @@
|
|||
<GSWEB NAME=ValidationFailureCondition>
|
||||
<FONT COLOR="#FF0000">
|
||||
<GSWEB NAME=ValidationFailureRepetition>
|
||||
<GSWEB NAME=ValidationFailure></GSWEB><BR>
|
||||
</GSWEB>
|
||||
</FONT>
|
||||
</GSWEB>
|
||||
<gsweb name="ValidationFailureCondition">
|
||||
<font color="#FF0000">
|
||||
<gsweb name="ValidationFailureRepetition">
|
||||
<gsweb name="ValidationFailure"></gsweb><br>
|
||||
</gsweb>
|
||||
</font>
|
||||
</gsweb>
|
||||
|
|
|
@ -36,7 +36,11 @@
|
|||
ADDITIONAL_CPPFLAGS =
|
||||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
ADDITIONAL_OBJCFLAGS =
|
||||
ifeq ($(GDL2), yes)
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN -DGDL2
|
||||
else
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN
|
||||
endif
|
||||
|
||||
# Additional flags to pass to the C compiler
|
||||
ADDITIONAL_CFLAGS =
|
||||
|
|
196
GSWeb.framework/DTDs/xhtml-lat1.ent
Normal file
196
GSWeb.framework/DTDs/xhtml-lat1.ent
Normal file
|
@ -0,0 +1,196 @@
|
|||
<!-- Portions (C) International Organization for Standardization 1986
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
-->
|
||||
<!-- Character entity set. Typical invocation:
|
||||
<!ENTITY % HTMLlat1 PUBLIC
|
||||
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
|
||||
%HTMLlat1;
|
||||
-->
|
||||
|
||||
<!ENTITY nbsp " "> <!-- no-break space = non-breaking space,
|
||||
U+00A0 ISOnum -->
|
||||
<!ENTITY iexcl "¡"> <!-- inverted exclamation mark, U+00A1 ISOnum -->
|
||||
<!ENTITY cent "¢"> <!-- cent sign, U+00A2 ISOnum -->
|
||||
<!ENTITY pound "£"> <!-- pound sign, U+00A3 ISOnum -->
|
||||
<!ENTITY curren "¤"> <!-- currency sign, U+00A4 ISOnum -->
|
||||
<!ENTITY yen "¥"> <!-- yen sign = yuan sign, U+00A5 ISOnum -->
|
||||
<!ENTITY brvbar "¦"> <!-- broken bar = broken vertical bar,
|
||||
U+00A6 ISOnum -->
|
||||
<!ENTITY sect "§"> <!-- section sign, U+00A7 ISOnum -->
|
||||
<!ENTITY uml "¨"> <!-- diaeresis = spacing diaeresis,
|
||||
U+00A8 ISOdia -->
|
||||
<!ENTITY copy "©"> <!-- copyright sign, U+00A9 ISOnum -->
|
||||
<!ENTITY ordf "ª"> <!-- feminine ordinal indicator, U+00AA ISOnum -->
|
||||
<!ENTITY laquo "«"> <!-- left-pointing double angle quotation mark
|
||||
= left pointing guillemet, U+00AB ISOnum -->
|
||||
<!ENTITY not "¬"> <!-- not sign = discretionary hyphen,
|
||||
U+00AC ISOnum -->
|
||||
<!ENTITY shy "­"> <!-- soft hyphen = discretionary hyphen,
|
||||
U+00AD ISOnum -->
|
||||
<!ENTITY reg "®"> <!-- registered sign = registered trade mark sign,
|
||||
U+00AE ISOnum -->
|
||||
<!ENTITY macr "¯"> <!-- macron = spacing macron = overline
|
||||
= APL overbar, U+00AF ISOdia -->
|
||||
<!ENTITY deg "°"> <!-- degree sign, U+00B0 ISOnum -->
|
||||
<!ENTITY plusmn "±"> <!-- plus-minus sign = plus-or-minus sign,
|
||||
U+00B1 ISOnum -->
|
||||
<!ENTITY sup2 "²"> <!-- superscript two = superscript digit two
|
||||
= squared, U+00B2 ISOnum -->
|
||||
<!ENTITY sup3 "³"> <!-- superscript three = superscript digit three
|
||||
= cubed, U+00B3 ISOnum -->
|
||||
<!ENTITY acute "´"> <!-- acute accent = spacing acute,
|
||||
U+00B4 ISOdia -->
|
||||
<!ENTITY micro "µ"> <!-- micro sign, U+00B5 ISOnum -->
|
||||
<!ENTITY para "¶"> <!-- pilcrow sign = paragraph sign,
|
||||
U+00B6 ISOnum -->
|
||||
<!ENTITY middot "·"> <!-- middle dot = Georgian comma
|
||||
= Greek middle dot, U+00B7 ISOnum -->
|
||||
<!ENTITY cedil "¸"> <!-- cedilla = spacing cedilla, U+00B8 ISOdia -->
|
||||
<!ENTITY sup1 "¹"> <!-- superscript one = superscript digit one,
|
||||
U+00B9 ISOnum -->
|
||||
<!ENTITY ordm "º"> <!-- masculine ordinal indicator,
|
||||
U+00BA ISOnum -->
|
||||
<!ENTITY raquo "»"> <!-- right-pointing double angle quotation mark
|
||||
= right pointing guillemet, U+00BB ISOnum -->
|
||||
<!ENTITY frac14 "¼"> <!-- vulgar fraction one quarter
|
||||
= fraction one quarter, U+00BC ISOnum -->
|
||||
<!ENTITY frac12 "½"> <!-- vulgar fraction one half
|
||||
= fraction one half, U+00BD ISOnum -->
|
||||
<!ENTITY frac34 "¾"> <!-- vulgar fraction three quarters
|
||||
= fraction three quarters, U+00BE ISOnum -->
|
||||
<!ENTITY iquest "¿"> <!-- inverted question mark
|
||||
= turned question mark, U+00BF ISOnum -->
|
||||
<!ENTITY Agrave "À"> <!-- latin capital letter A with grave
|
||||
= latin capital letter A grave,
|
||||
U+00C0 ISOlat1 -->
|
||||
<!ENTITY Aacute "Á"> <!-- latin capital letter A with acute,
|
||||
U+00C1 ISOlat1 -->
|
||||
<!ENTITY Acirc "Â"> <!-- latin capital letter A with circumflex,
|
||||
U+00C2 ISOlat1 -->
|
||||
<!ENTITY Atilde "Ã"> <!-- latin capital letter A with tilde,
|
||||
U+00C3 ISOlat1 -->
|
||||
<!ENTITY Auml "Ä"> <!-- latin capital letter A with diaeresis,
|
||||
U+00C4 ISOlat1 -->
|
||||
<!ENTITY Aring "Å"> <!-- latin capital letter A with ring above
|
||||
= latin capital letter A ring,
|
||||
U+00C5 ISOlat1 -->
|
||||
<!ENTITY AElig "Æ"> <!-- latin capital letter AE
|
||||
= latin capital ligature AE,
|
||||
U+00C6 ISOlat1 -->
|
||||
<!ENTITY Ccedil "Ç"> <!-- latin capital letter C with cedilla,
|
||||
U+00C7 ISOlat1 -->
|
||||
<!ENTITY Egrave "È"> <!-- latin capital letter E with grave,
|
||||
U+00C8 ISOlat1 -->
|
||||
<!ENTITY Eacute "É"> <!-- latin capital letter E with acute,
|
||||
U+00C9 ISOlat1 -->
|
||||
<!ENTITY Ecirc "Ê"> <!-- latin capital letter E with circumflex,
|
||||
U+00CA ISOlat1 -->
|
||||
<!ENTITY Euml "Ë"> <!-- latin capital letter E with diaeresis,
|
||||
U+00CB ISOlat1 -->
|
||||
<!ENTITY Igrave "Ì"> <!-- latin capital letter I with grave,
|
||||
U+00CC ISOlat1 -->
|
||||
<!ENTITY Iacute "Í"> <!-- latin capital letter I with acute,
|
||||
U+00CD ISOlat1 -->
|
||||
<!ENTITY Icirc "Î"> <!-- latin capital letter I with circumflex,
|
||||
U+00CE ISOlat1 -->
|
||||
<!ENTITY Iuml "Ï"> <!-- latin capital letter I with diaeresis,
|
||||
U+00CF ISOlat1 -->
|
||||
<!ENTITY ETH "Ð"> <!-- latin capital letter ETH, U+00D0 ISOlat1 -->
|
||||
<!ENTITY Ntilde "Ñ"> <!-- latin capital letter N with tilde,
|
||||
U+00D1 ISOlat1 -->
|
||||
<!ENTITY Ograve "Ò"> <!-- latin capital letter O with grave,
|
||||
U+00D2 ISOlat1 -->
|
||||
<!ENTITY Oacute "Ó"> <!-- latin capital letter O with acute,
|
||||
U+00D3 ISOlat1 -->
|
||||
<!ENTITY Ocirc "Ô"> <!-- latin capital letter O with circumflex,
|
||||
U+00D4 ISOlat1 -->
|
||||
<!ENTITY Otilde "Õ"> <!-- latin capital letter O with tilde,
|
||||
U+00D5 ISOlat1 -->
|
||||
<!ENTITY Ouml "Ö"> <!-- latin capital letter O with diaeresis,
|
||||
U+00D6 ISOlat1 -->
|
||||
<!ENTITY times "×"> <!-- multiplication sign, U+00D7 ISOnum -->
|
||||
<!ENTITY Oslash "Ø"> <!-- latin capital letter O with stroke
|
||||
= latin capital letter O slash,
|
||||
U+00D8 ISOlat1 -->
|
||||
<!ENTITY Ugrave "Ù"> <!-- latin capital letter U with grave,
|
||||
U+00D9 ISOlat1 -->
|
||||
<!ENTITY Uacute "Ú"> <!-- latin capital letter U with acute,
|
||||
U+00DA ISOlat1 -->
|
||||
<!ENTITY Ucirc "Û"> <!-- latin capital letter U with circumflex,
|
||||
U+00DB ISOlat1 -->
|
||||
<!ENTITY Uuml "Ü"> <!-- latin capital letter U with diaeresis,
|
||||
U+00DC ISOlat1 -->
|
||||
<!ENTITY Yacute "Ý"> <!-- latin capital letter Y with acute,
|
||||
U+00DD ISOlat1 -->
|
||||
<!ENTITY THORN "Þ"> <!-- latin capital letter THORN,
|
||||
U+00DE ISOlat1 -->
|
||||
<!ENTITY szlig "ß"> <!-- latin small letter sharp s = ess-zed,
|
||||
U+00DF ISOlat1 -->
|
||||
<!ENTITY agrave "à"> <!-- latin small letter a with grave
|
||||
= latin small letter a grave,
|
||||
U+00E0 ISOlat1 -->
|
||||
<!ENTITY aacute "á"> <!-- latin small letter a with acute,
|
||||
U+00E1 ISOlat1 -->
|
||||
<!ENTITY acirc "â"> <!-- latin small letter a with circumflex,
|
||||
U+00E2 ISOlat1 -->
|
||||
<!ENTITY atilde "ã"> <!-- latin small letter a with tilde,
|
||||
U+00E3 ISOlat1 -->
|
||||
<!ENTITY auml "ä"> <!-- latin small letter a with diaeresis,
|
||||
U+00E4 ISOlat1 -->
|
||||
<!ENTITY aring "å"> <!-- latin small letter a with ring above
|
||||
= latin small letter a ring,
|
||||
U+00E5 ISOlat1 -->
|
||||
<!ENTITY aelig "æ"> <!-- latin small letter ae
|
||||
= latin small ligature ae, U+00E6 ISOlat1 -->
|
||||
<!ENTITY ccedil "ç"> <!-- latin small letter c with cedilla,
|
||||
U+00E7 ISOlat1 -->
|
||||
<!ENTITY egrave "è"> <!-- latin small letter e with grave,
|
||||
U+00E8 ISOlat1 -->
|
||||
<!ENTITY eacute "é"> <!-- latin small letter e with acute,
|
||||
U+00E9 ISOlat1 -->
|
||||
<!ENTITY ecirc "ê"> <!-- latin small letter e with circumflex,
|
||||
U+00EA ISOlat1 -->
|
||||
<!ENTITY euml "ë"> <!-- latin small letter e with diaeresis,
|
||||
U+00EB ISOlat1 -->
|
||||
<!ENTITY igrave "ì"> <!-- latin small letter i with grave,
|
||||
U+00EC ISOlat1 -->
|
||||
<!ENTITY iacute "í"> <!-- latin small letter i with acute,
|
||||
U+00ED ISOlat1 -->
|
||||
<!ENTITY icirc "î"> <!-- latin small letter i with circumflex,
|
||||
U+00EE ISOlat1 -->
|
||||
<!ENTITY iuml "ï"> <!-- latin small letter i with diaeresis,
|
||||
U+00EF ISOlat1 -->
|
||||
<!ENTITY eth "ð"> <!-- latin small letter eth, U+00F0 ISOlat1 -->
|
||||
<!ENTITY ntilde "ñ"> <!-- latin small letter n with tilde,
|
||||
U+00F1 ISOlat1 -->
|
||||
<!ENTITY ograve "ò"> <!-- latin small letter o with grave,
|
||||
U+00F2 ISOlat1 -->
|
||||
<!ENTITY oacute "ó"> <!-- latin small letter o with acute,
|
||||
U+00F3 ISOlat1 -->
|
||||
<!ENTITY ocirc "ô"> <!-- latin small letter o with circumflex,
|
||||
U+00F4 ISOlat1 -->
|
||||
<!ENTITY otilde "õ"> <!-- latin small letter o with tilde,
|
||||
U+00F5 ISOlat1 -->
|
||||
<!ENTITY ouml "ö"> <!-- latin small letter o with diaeresis,
|
||||
U+00F6 ISOlat1 -->
|
||||
<!ENTITY divide "÷"> <!-- division sign, U+00F7 ISOnum -->
|
||||
<!ENTITY oslash "ø"> <!-- latin small letter o with stroke,
|
||||
= latin small letter o slash,
|
||||
U+00F8 ISOlat1 -->
|
||||
<!ENTITY ugrave "ù"> <!-- latin small letter u with grave,
|
||||
U+00F9 ISOlat1 -->
|
||||
<!ENTITY uacute "ú"> <!-- latin small letter u with acute,
|
||||
U+00FA ISOlat1 -->
|
||||
<!ENTITY ucirc "û"> <!-- latin small letter u with circumflex,
|
||||
U+00FB ISOlat1 -->
|
||||
<!ENTITY uuml "ü"> <!-- latin small letter u with diaeresis,
|
||||
U+00FC ISOlat1 -->
|
||||
<!ENTITY yacute "ý"> <!-- latin small letter y with acute,
|
||||
U+00FD ISOlat1 -->
|
||||
<!ENTITY thorn "þ"> <!-- latin small letter thorn with,
|
||||
U+00FE ISOlat1 -->
|
||||
<!ENTITY yuml "ÿ"> <!-- latin small letter y with diaeresis,
|
||||
U+00FF ISOlat1 -->
|
79
GSWeb.framework/DTDs/xhtml-special.ent
Normal file
79
GSWeb.framework/DTDs/xhtml-special.ent
Normal file
|
@ -0,0 +1,79 @@
|
|||
<!-- Special characters for HTML -->
|
||||
|
||||
<!-- Character entity set. Typical invocation:
|
||||
<!ENTITY % HTMLspecial PUBLIC
|
||||
"-//W3C//ENTITIES Special for XHTML//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
|
||||
%HTMLspecial;
|
||||
-->
|
||||
|
||||
<!-- Portions (C) International Organization for Standardization 1986:
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
-->
|
||||
|
||||
<!-- Relevant ISO entity set is given unless names are newly introduced.
|
||||
New names (i.e., not in ISO 8879 list) do not clash with any
|
||||
existing ISO 8879 entity names. ISO 10646 character numbers
|
||||
are given for each character, in hex. values are decimal
|
||||
conversions of the ISO 10646 values and refer to the document
|
||||
character set. Names are Unicode names.
|
||||
-->
|
||||
|
||||
<!-- C0 Controls and Basic Latin -->
|
||||
<!ENTITY quot """> <!-- quotation mark = APL quote,
|
||||
U+0022 ISOnum -->
|
||||
<!ENTITY amp "&#38;"> <!-- ampersand, U+0026 ISOnum -->
|
||||
<!ENTITY lt "&#60;"> <!-- less-than sign, U+003C ISOnum -->
|
||||
<!ENTITY gt ">"> <!-- greater-than sign, U+003E ISOnum -->
|
||||
<!ENTITY apos "'"> <!-- apostrophe mark, U+0027 ISOnum -->
|
||||
|
||||
<!-- Latin Extended-A -->
|
||||
<!ENTITY OElig "Œ"> <!-- latin capital ligature OE,
|
||||
U+0152 ISOlat2 -->
|
||||
<!ENTITY oelig "œ"> <!-- latin small ligature oe, U+0153 ISOlat2 -->
|
||||
<!-- ligature is a misnomer, this is a separate character in some languages -->
|
||||
<!ENTITY Scaron "Š"> <!-- latin capital letter S with caron,
|
||||
U+0160 ISOlat2 -->
|
||||
<!ENTITY scaron "š"> <!-- latin small letter s with caron,
|
||||
U+0161 ISOlat2 -->
|
||||
<!ENTITY Yuml "Ÿ"> <!-- latin capital letter Y with diaeresis,
|
||||
U+0178 ISOlat2 -->
|
||||
|
||||
<!-- Spacing Modifier Letters -->
|
||||
<!ENTITY circ "ˆ"> <!-- modifier letter circumflex accent,
|
||||
U+02C6 ISOpub -->
|
||||
<!ENTITY tilde "˜"> <!-- small tilde, U+02DC ISOdia -->
|
||||
|
||||
<!-- General Punctuation -->
|
||||
<!ENTITY ensp " "> <!-- en space, U+2002 ISOpub -->
|
||||
<!ENTITY emsp " "> <!-- em space, U+2003 ISOpub -->
|
||||
<!ENTITY thinsp " "> <!-- thin space, U+2009 ISOpub -->
|
||||
<!ENTITY zwnj "‌"> <!-- zero width non-joiner,
|
||||
U+200C NEW RFC 2070 -->
|
||||
<!ENTITY zwj "‍"> <!-- zero width joiner, U+200D NEW RFC 2070 -->
|
||||
<!ENTITY lrm "‎"> <!-- left-to-right mark, U+200E NEW RFC 2070 -->
|
||||
<!ENTITY rlm "‏"> <!-- right-to-left mark, U+200F NEW RFC 2070 -->
|
||||
<!ENTITY ndash "–"> <!-- en dash, U+2013 ISOpub -->
|
||||
<!ENTITY mdash "—"> <!-- em dash, U+2014 ISOpub -->
|
||||
<!ENTITY lsquo "‘"> <!-- left single quotation mark,
|
||||
U+2018 ISOnum -->
|
||||
<!ENTITY rsquo "’"> <!-- right single quotation mark,
|
||||
U+2019 ISOnum -->
|
||||
<!ENTITY sbquo "‚"> <!-- single low-9 quotation mark, U+201A NEW -->
|
||||
<!ENTITY ldquo "“"> <!-- left double quotation mark,
|
||||
U+201C ISOnum -->
|
||||
<!ENTITY rdquo "”"> <!-- right double quotation mark,
|
||||
U+201D ISOnum -->
|
||||
<!ENTITY bdquo "„"> <!-- double low-9 quotation mark, U+201E NEW -->
|
||||
<!ENTITY dagger "†"> <!-- dagger, U+2020 ISOpub -->
|
||||
<!ENTITY Dagger "‡"> <!-- double dagger, U+2021 ISOpub -->
|
||||
<!ENTITY permil "‰"> <!-- per mille sign, U+2030 ISOtech -->
|
||||
<!ENTITY lsaquo "‹"> <!-- single left-pointing angle quotation mark,
|
||||
U+2039 ISO proposed -->
|
||||
<!-- lsaquo is proposed but not yet ISO standardized -->
|
||||
<!ENTITY rsaquo "›"> <!-- single right-pointing angle quotation mark,
|
||||
U+203A ISO proposed -->
|
||||
<!-- rsaquo is proposed but not yet ISO standardized -->
|
||||
<!ENTITY euro "€"> <!-- euro sign, U+20AC NEW -->
|
242
GSWeb.framework/DTDs/xhtml-symbol.ent
Normal file
242
GSWeb.framework/DTDs/xhtml-symbol.ent
Normal file
|
@ -0,0 +1,242 @@
|
|||
<!-- Mathematical, Greek and Symbolic characters for HTML -->
|
||||
|
||||
<!-- Character entity set. Typical invocation:
|
||||
<!ENTITY % HTMLsymbol PUBLIC
|
||||
"-//W3C//ENTITIES Symbols for XHTML//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
|
||||
%HTMLsymbol;
|
||||
-->
|
||||
|
||||
<!-- Portions (C) International Organization for Standardization 1986:
|
||||
Permission to copy in any form is granted for use with
|
||||
conforming SGML systems and applications as defined in
|
||||
ISO 8879, provided this notice is included in all copies.
|
||||
-->
|
||||
|
||||
<!-- Relevant ISO entity set is given unless names are newly introduced.
|
||||
New names (i.e., not in ISO 8879 list) do not clash with any
|
||||
existing ISO 8879 entity names. ISO 10646 character numbers
|
||||
are given for each character, in hex. values are decimal
|
||||
conversions of the ISO 10646 values and refer to the document
|
||||
character set. Names are Unicode names.
|
||||
-->
|
||||
|
||||
<!-- Latin Extended-B -->
|
||||
<!ENTITY fnof "ƒ"> <!-- latin small f with hook = function
|
||||
= florin, U+0192 ISOtech -->
|
||||
|
||||
<!-- Greek -->
|
||||
<!ENTITY Alpha "Α"> <!-- greek capital letter alpha, U+0391 -->
|
||||
<!ENTITY Beta "Β"> <!-- greek capital letter beta, U+0392 -->
|
||||
<!ENTITY Gamma "Γ"> <!-- greek capital letter gamma,
|
||||
U+0393 ISOgrk3 -->
|
||||
<!ENTITY Delta "Δ"> <!-- greek capital letter delta,
|
||||
U+0394 ISOgrk3 -->
|
||||
<!ENTITY Epsilon "Ε"> <!-- greek capital letter epsilon, U+0395 -->
|
||||
<!ENTITY Zeta "Ζ"> <!-- greek capital letter zeta, U+0396 -->
|
||||
<!ENTITY Eta "Η"> <!-- greek capital letter eta, U+0397 -->
|
||||
<!ENTITY Theta "Θ"> <!-- greek capital letter theta,
|
||||
U+0398 ISOgrk3 -->
|
||||
<!ENTITY Iota "Ι"> <!-- greek capital letter iota, U+0399 -->
|
||||
<!ENTITY Kappa "Κ"> <!-- greek capital letter kappa, U+039A -->
|
||||
<!ENTITY Lambda "Λ"> <!-- greek capital letter lambda,
|
||||
U+039B ISOgrk3 -->
|
||||
<!ENTITY Mu "Μ"> <!-- greek capital letter mu, U+039C -->
|
||||
<!ENTITY Nu "Ν"> <!-- greek capital letter nu, U+039D -->
|
||||
<!ENTITY Xi "Ξ"> <!-- greek capital letter xi, U+039E ISOgrk3 -->
|
||||
<!ENTITY Omicron "Ο"> <!-- greek capital letter omicron, U+039F -->
|
||||
<!ENTITY Pi "Π"> <!-- greek capital letter pi, U+03A0 ISOgrk3 -->
|
||||
<!ENTITY Rho "Ρ"> <!-- greek capital letter rho, U+03A1 -->
|
||||
<!-- there is no Sigmaf, and no U+03A2 character either -->
|
||||
<!ENTITY Sigma "Σ"> <!-- greek capital letter sigma,
|
||||
U+03A3 ISOgrk3 -->
|
||||
<!ENTITY Tau "Τ"> <!-- greek capital letter tau, U+03A4 -->
|
||||
<!ENTITY Upsilon "Υ"> <!-- greek capital letter upsilon,
|
||||
U+03A5 ISOgrk3 -->
|
||||
<!ENTITY Phi "Φ"> <!-- greek capital letter phi,
|
||||
U+03A6 ISOgrk3 -->
|
||||
<!ENTITY Chi "Χ"> <!-- greek capital letter chi, U+03A7 -->
|
||||
<!ENTITY Psi "Ψ"> <!-- greek capital letter psi,
|
||||
U+03A8 ISOgrk3 -->
|
||||
<!ENTITY Omega "Ω"> <!-- greek capital letter omega,
|
||||
U+03A9 ISOgrk3 -->
|
||||
|
||||
<!ENTITY alpha "α"> <!-- greek small letter alpha,
|
||||
U+03B1 ISOgrk3 -->
|
||||
<!ENTITY beta "β"> <!-- greek small letter beta, U+03B2 ISOgrk3 -->
|
||||
<!ENTITY gamma "γ"> <!-- greek small letter gamma,
|
||||
U+03B3 ISOgrk3 -->
|
||||
<!ENTITY delta "δ"> <!-- greek small letter delta,
|
||||
U+03B4 ISOgrk3 -->
|
||||
<!ENTITY epsilon "ε"> <!-- greek small letter epsilon,
|
||||
U+03B5 ISOgrk3 -->
|
||||
<!ENTITY zeta "ζ"> <!-- greek small letter zeta, U+03B6 ISOgrk3 -->
|
||||
<!ENTITY eta "η"> <!-- greek small letter eta, U+03B7 ISOgrk3 -->
|
||||
<!ENTITY theta "θ"> <!-- greek small letter theta,
|
||||
U+03B8 ISOgrk3 -->
|
||||
<!ENTITY iota "ι"> <!-- greek small letter iota, U+03B9 ISOgrk3 -->
|
||||
<!ENTITY kappa "κ"> <!-- greek small letter kappa,
|
||||
U+03BA ISOgrk3 -->
|
||||
<!ENTITY lambda "λ"> <!-- greek small letter lambda,
|
||||
U+03BB ISOgrk3 -->
|
||||
<!ENTITY mu "μ"> <!-- greek small letter mu, U+03BC ISOgrk3 -->
|
||||
<!ENTITY nu "ν"> <!-- greek small letter nu, U+03BD ISOgrk3 -->
|
||||
<!ENTITY xi "ξ"> <!-- greek small letter xi, U+03BE ISOgrk3 -->
|
||||
<!ENTITY omicron "ο"> <!-- greek small letter omicron, U+03BF NEW -->
|
||||
<!ENTITY pi "π"> <!-- greek small letter pi, U+03C0 ISOgrk3 -->
|
||||
<!ENTITY rho "ρ"> <!-- greek small letter rho, U+03C1 ISOgrk3 -->
|
||||
<!ENTITY sigmaf "ς"> <!-- greek small letter final sigma,
|
||||
U+03C2 ISOgrk3 -->
|
||||
<!ENTITY sigma "σ"> <!-- greek small letter sigma,
|
||||
U+03C3 ISOgrk3 -->
|
||||
<!ENTITY tau "τ"> <!-- greek small letter tau, U+03C4 ISOgrk3 -->
|
||||
<!ENTITY upsilon "υ"> <!-- greek small letter upsilon,
|
||||
U+03C5 ISOgrk3 -->
|
||||
<!ENTITY phi "φ"> <!-- greek small letter phi, U+03C6 ISOgrk3 -->
|
||||
<!ENTITY chi "χ"> <!-- greek small letter chi, U+03C7 ISOgrk3 -->
|
||||
<!ENTITY psi "ψ"> <!-- greek small letter psi, U+03C8 ISOgrk3 -->
|
||||
<!ENTITY omega "ω"> <!-- greek small letter omega,
|
||||
U+03C9 ISOgrk3 -->
|
||||
<!ENTITY thetasym "ϑ"> <!-- greek small letter theta symbol,
|
||||
U+03D1 NEW -->
|
||||
<!ENTITY upsih "ϒ"> <!-- greek upsilon with hook symbol,
|
||||
U+03D2 NEW -->
|
||||
<!ENTITY piv "ϖ"> <!-- greek pi symbol, U+03D6 ISOgrk3 -->
|
||||
|
||||
<!-- General Punctuation -->
|
||||
<!ENTITY bull "•"> <!-- bullet = black small circle,
|
||||
U+2022 ISOpub -->
|
||||
<!-- bullet is NOT the same as bullet operator, U+2219 -->
|
||||
<!ENTITY hellip "…"> <!-- horizontal ellipsis = three dot leader,
|
||||
U+2026 ISOpub -->
|
||||
<!ENTITY prime "′"> <!-- prime = minutes = feet, U+2032 ISOtech -->
|
||||
<!ENTITY Prime "″"> <!-- double prime = seconds = inches,
|
||||
U+2033 ISOtech -->
|
||||
<!ENTITY oline "‾"> <!-- overline = spacing overscore,
|
||||
U+203E NEW -->
|
||||
<!ENTITY frasl "⁄"> <!-- fraction slash, U+2044 NEW -->
|
||||
|
||||
<!-- Letterlike Symbols -->
|
||||
<!ENTITY weierp "℘"> <!-- script capital P = power set
|
||||
= Weierstrass p, U+2118 ISOamso -->
|
||||
<!ENTITY image "ℑ"> <!-- blackletter capital I = imaginary part,
|
||||
U+2111 ISOamso -->
|
||||
<!ENTITY real "ℜ"> <!-- blackletter capital R = real part symbol,
|
||||
U+211C ISOamso -->
|
||||
<!ENTITY trade "™"> <!-- trade mark sign, U+2122 ISOnum -->
|
||||
<!ENTITY alefsym "ℵ"> <!-- alef symbol = first transfinite cardinal,
|
||||
U+2135 NEW -->
|
||||
<!-- alef symbol is NOT the same as hebrew letter alef,
|
||||
U+05D0 although the same glyph could be used to depict both characters -->
|
||||
|
||||
<!-- Arrows -->
|
||||
<!ENTITY larr "←"> <!-- leftwards arrow, U+2190 ISOnum -->
|
||||
<!ENTITY uarr "↑"> <!-- upwards arrow, U+2191 ISOnum-->
|
||||
<!ENTITY rarr "→"> <!-- rightwards arrow, U+2192 ISOnum -->
|
||||
<!ENTITY darr "↓"> <!-- downwards arrow, U+2193 ISOnum -->
|
||||
<!ENTITY harr "↔"> <!-- left right arrow, U+2194 ISOamsa -->
|
||||
<!ENTITY crarr "↵"> <!-- downwards arrow with corner leftwards
|
||||
= carriage return, U+21B5 NEW -->
|
||||
<!ENTITY lArr "⇐"> <!-- leftwards double arrow, U+21D0 ISOtech -->
|
||||
<!-- Unicode does not say that lArr is the same as the 'is implied by' arrow
|
||||
but also does not have any other character for that function. So ? lArr can
|
||||
be used for 'is implied by' as ISOtech suggests -->
|
||||
<!ENTITY uArr "⇑"> <!-- upwards double arrow, U+21D1 ISOamsa -->
|
||||
<!ENTITY rArr "⇒"> <!-- rightwards double arrow,
|
||||
U+21D2 ISOtech -->
|
||||
<!-- Unicode does not say this is the 'implies' character but does not have
|
||||
another character with this function so ?
|
||||
rArr can be used for 'implies' as ISOtech suggests -->
|
||||
<!ENTITY dArr "⇓"> <!-- downwards double arrow, U+21D3 ISOamsa -->
|
||||
<!ENTITY hArr "⇔"> <!-- left right double arrow,
|
||||
U+21D4 ISOamsa -->
|
||||
|
||||
<!-- Mathematical Operators -->
|
||||
<!ENTITY forall "∀"> <!-- for all, U+2200 ISOtech -->
|
||||
<!ENTITY part "∂"> <!-- partial differential, U+2202 ISOtech -->
|
||||
<!ENTITY exist "∃"> <!-- there exists, U+2203 ISOtech -->
|
||||
<!ENTITY empty "∅"> <!-- empty set = null set = diameter,
|
||||
U+2205 ISOamso -->
|
||||
<!ENTITY nabla "∇"> <!-- nabla = backward difference,
|
||||
U+2207 ISOtech -->
|
||||
<!ENTITY isin "∈"> <!-- element of, U+2208 ISOtech -->
|
||||
<!ENTITY notin "∉"> <!-- not an element of, U+2209 ISOtech -->
|
||||
<!ENTITY ni "∋"> <!-- contains as member, U+220B ISOtech -->
|
||||
<!-- should there be a more memorable name than 'ni'? -->
|
||||
<!ENTITY prod "∏"> <!-- n-ary product = product sign,
|
||||
U+220F ISOamsb -->
|
||||
<!-- prod is NOT the same character as U+03A0 'greek capital letter pi' though
|
||||
the same glyph might be used for both -->
|
||||
<!ENTITY sum "∑"> <!-- n-ary sumation, U+2211 ISOamsb -->
|
||||
<!-- sum is NOT the same character as U+03A3 'greek capital letter sigma'
|
||||
though the same glyph might be used for both -->
|
||||
<!ENTITY minus "−"> <!-- minus sign, U+2212 ISOtech -->
|
||||
<!ENTITY lowast "∗"> <!-- asterisk operator, U+2217 ISOtech -->
|
||||
<!ENTITY radic "√"> <!-- square root = radical sign,
|
||||
U+221A ISOtech -->
|
||||
<!ENTITY prop "∝"> <!-- proportional to, U+221D ISOtech -->
|
||||
<!ENTITY infin "∞"> <!-- infinity, U+221E ISOtech -->
|
||||
<!ENTITY ang "∠"> <!-- angle, U+2220 ISOamso -->
|
||||
<!ENTITY and "∧"> <!-- logical and = wedge, U+2227 ISOtech -->
|
||||
<!ENTITY or "∨"> <!-- logical or = vee, U+2228 ISOtech -->
|
||||
<!ENTITY cap "∩"> <!-- intersection = cap, U+2229 ISOtech -->
|
||||
<!ENTITY cup "∪"> <!-- union = cup, U+222A ISOtech -->
|
||||
<!ENTITY int "∫"> <!-- integral, U+222B ISOtech -->
|
||||
<!ENTITY there4 "∴"> <!-- therefore, U+2234 ISOtech -->
|
||||
<!ENTITY sim "∼"> <!-- tilde operator = varies with = similar to,
|
||||
U+223C ISOtech -->
|
||||
<!-- tilde operator is NOT the same character as the tilde, U+007E,
|
||||
although the same glyph might be used to represent both -->
|
||||
<!ENTITY cong "≅"> <!-- approximately equal to, U+2245 ISOtech -->
|
||||
<!ENTITY asymp "≈"> <!-- almost equal to = asymptotic to,
|
||||
U+2248 ISOamsr -->
|
||||
<!ENTITY ne "≠"> <!-- not equal to, U+2260 ISOtech -->
|
||||
<!ENTITY equiv "≡"> <!-- identical to, U+2261 ISOtech -->
|
||||
<!ENTITY le "≤"> <!-- less-than or equal to, U+2264 ISOtech -->
|
||||
<!ENTITY ge "≥"> <!-- greater-than or equal to,
|
||||
U+2265 ISOtech -->
|
||||
<!ENTITY sub "⊂"> <!-- subset of, U+2282 ISOtech -->
|
||||
<!ENTITY sup "⊃"> <!-- superset of, U+2283 ISOtech -->
|
||||
<!-- note that nsup, 'not a superset of, U+2283' is not covered by the Symbol
|
||||
font encoding and is not included. Should it be, for symmetry?
|
||||
It is in ISOamsn -->
|
||||
<!ENTITY nsub "⊄"> <!-- not a subset of, U+2284 ISOamsn -->
|
||||
<!ENTITY sube "⊆"> <!-- subset of or equal to, U+2286 ISOtech -->
|
||||
<!ENTITY supe "⊇"> <!-- superset of or equal to,
|
||||
U+2287 ISOtech -->
|
||||
<!ENTITY oplus "⊕"> <!-- circled plus = direct sum,
|
||||
U+2295 ISOamsb -->
|
||||
<!ENTITY otimes "⊗"> <!-- circled times = vector product,
|
||||
U+2297 ISOamsb -->
|
||||
<!ENTITY perp "⊥"> <!-- up tack = orthogonal to = perpendicular,
|
||||
U+22A5 ISOtech -->
|
||||
<!ENTITY sdot "⋅"> <!-- dot operator, U+22C5 ISOamsb -->
|
||||
<!-- dot operator is NOT the same character as U+00B7 middle dot -->
|
||||
|
||||
<!-- Miscellaneous Technical -->
|
||||
<!ENTITY lceil "⌈"> <!-- left ceiling = apl upstile,
|
||||
U+2308 ISOamsc -->
|
||||
<!ENTITY rceil "⌉"> <!-- right ceiling, U+2309 ISOamsc -->
|
||||
<!ENTITY lfloor "⌊"> <!-- left floor = apl downstile,
|
||||
U+230A ISOamsc -->
|
||||
<!ENTITY rfloor "⌋"> <!-- right floor, U+230B ISOamsc -->
|
||||
<!ENTITY lang "〈"> <!-- left-pointing angle bracket = bra,
|
||||
U+2329 ISOtech -->
|
||||
<!-- lang is NOT the same character as U+003C 'less than'
|
||||
or U+2039 'single left-pointing angle quotation mark' -->
|
||||
<!ENTITY rang "〉"> <!-- right-pointing angle bracket = ket,
|
||||
U+232A ISOtech -->
|
||||
<!-- rang is NOT the same character as U+003E 'greater than'
|
||||
or U+203A 'single right-pointing angle quotation mark' -->
|
||||
|
||||
<!-- Geometric Shapes -->
|
||||
<!ENTITY loz "◊"> <!-- lozenge, U+25CA ISOpub -->
|
||||
|
||||
<!-- Miscellaneous Symbols -->
|
||||
<!ENTITY spades "♠"> <!-- black spade suit, U+2660 ISOpub -->
|
||||
<!-- black here seems to mean filled as opposed to hollow -->
|
||||
<!ENTITY clubs "♣"> <!-- black club suit = shamrock,
|
||||
U+2663 ISOpub -->
|
||||
<!ENTITY hearts "♥"> <!-- black heart suit = valentine,
|
||||
U+2665 ISOpub -->
|
||||
<!ENTITY diams "♦"> <!-- black diamond suit, U+2666 ISOpub -->
|
1225
GSWeb.framework/DTDs/xhtml1-frameset.dtd
Normal file
1225
GSWeb.framework/DTDs/xhtml1-frameset.dtd
Normal file
File diff suppressed because it is too large
Load diff
988
GSWeb.framework/DTDs/xhtml1-strict.dtd
Normal file
988
GSWeb.framework/DTDs/xhtml1-strict.dtd
Normal file
|
@ -0,0 +1,988 @@
|
|||
<!--
|
||||
Extensible HTML version 1.0 Strict DTD
|
||||
|
||||
This is the same as HTML 4.0 Strict except for
|
||||
changes due to the differences between XML and SGML.
|
||||
|
||||
Namespace = http://www.w3.org/1999/xhtml
|
||||
|
||||
For further information, see: http://www.w3.org/TR/xhtml1
|
||||
|
||||
Copyright (c) 1998-2000 W3C (MIT, INRIA, Keio),
|
||||
All Rights Reserved.
|
||||
|
||||
This DTD module is identified by the PUBLIC and SYSTEM identifiers:
|
||||
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
|
||||
|
||||
$Revision$
|
||||
$Date$
|
||||
|
||||
-->
|
||||
|
||||
<!--================ Character mnemonic entities =========================-->
|
||||
|
||||
<!ENTITY % HTMLlat1 PUBLIC
|
||||
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
|
||||
"xhtml-lat1.ent">
|
||||
%HTMLlat1;
|
||||
|
||||
<!ENTITY % HTMLsymbol PUBLIC
|
||||
"-//W3C//ENTITIES Symbols for XHTML//EN"
|
||||
"xhtml-symbol.ent">
|
||||
%HTMLsymbol;
|
||||
|
||||
<!ENTITY % HTMLspecial PUBLIC
|
||||
"-//W3C//ENTITIES Special for XHTML//EN"
|
||||
"xhtml-special.ent">
|
||||
%HTMLspecial;
|
||||
|
||||
<!--================== Imported Names ====================================-->
|
||||
|
||||
<!ENTITY % ContentType "CDATA">
|
||||
<!-- media type, as per [RFC2045] -->
|
||||
|
||||
<!ENTITY % ContentTypes "CDATA">
|
||||
<!-- comma-separated list of media types, as per [RFC2045] -->
|
||||
|
||||
<!ENTITY % Charset "CDATA">
|
||||
<!-- a character encoding, as per [RFC2045] -->
|
||||
|
||||
<!ENTITY % Charsets "CDATA">
|
||||
<!-- a space separated list of character encodings, as per [RFC2045] -->
|
||||
|
||||
<!ENTITY % LanguageCode "NMTOKEN">
|
||||
<!-- a language code, as per [RFC1766] -->
|
||||
|
||||
<!ENTITY % Character "CDATA">
|
||||
<!-- a single character from [ISO10646] -->
|
||||
|
||||
<!ENTITY % Number "CDATA">
|
||||
<!-- one or more digits -->
|
||||
|
||||
<!ENTITY % LinkTypes "CDATA">
|
||||
<!-- space-separated list of link types -->
|
||||
|
||||
<!ENTITY % MediaDesc "CDATA">
|
||||
<!-- single or comma-separated list of media descriptors -->
|
||||
|
||||
<!ENTITY % URI "CDATA">
|
||||
<!-- a Uniform Resource Identifier, see [RFC2396] -->
|
||||
|
||||
<!ENTITY % UriList "CDATA">
|
||||
<!-- a space separated list of Uniform Resource Identifiers -->
|
||||
|
||||
<!ENTITY % Datetime "CDATA">
|
||||
<!-- date and time information. ISO date format -->
|
||||
|
||||
<!ENTITY % Script "CDATA">
|
||||
<!-- script expression -->
|
||||
|
||||
<!ENTITY % StyleSheet "CDATA">
|
||||
<!-- style sheet data -->
|
||||
|
||||
<!ENTITY % Text "CDATA">
|
||||
<!-- used for titles etc. -->
|
||||
|
||||
<!ENTITY % FrameTarget "NMTOKEN">
|
||||
<!-- render in this frame -->
|
||||
|
||||
<!ENTITY % Length "CDATA">
|
||||
<!-- nn for pixels or nn% for percentage length -->
|
||||
|
||||
<!ENTITY % MultiLength "CDATA">
|
||||
<!-- pixel, percentage, or relative -->
|
||||
|
||||
<!ENTITY % MultiLengths "CDATA">
|
||||
<!-- comma-separated list of MultiLength -->
|
||||
|
||||
<!ENTITY % Pixels "CDATA">
|
||||
<!-- integer representing length in pixels -->
|
||||
|
||||
<!-- these are used for image maps -->
|
||||
|
||||
<!ENTITY % Shape "(rect|circle|poly|default)">
|
||||
|
||||
<!ENTITY % Coords "CDATA">
|
||||
<!-- comma separated list of lengths -->
|
||||
|
||||
<!--=================== Generic Attributes ===============================-->
|
||||
|
||||
<!-- core attributes common to most elements
|
||||
id document-wide unique id
|
||||
class space separated list of classes
|
||||
style associated style info
|
||||
title advisory title/amplification
|
||||
-->
|
||||
<!ENTITY % coreattrs
|
||||
"id ID #IMPLIED
|
||||
class CDATA #IMPLIED
|
||||
style %StyleSheet; #IMPLIED
|
||||
title %Text; #IMPLIED"
|
||||
>
|
||||
|
||||
<!-- internationalization attributes
|
||||
lang language code (backwards compatible)
|
||||
xml:lang language code (as per XML 1.0 spec)
|
||||
dir direction for weak/neutral text
|
||||
-->
|
||||
<!ENTITY % i18n
|
||||
"lang %LanguageCode; #IMPLIED
|
||||
xml:lang %LanguageCode; #IMPLIED
|
||||
dir (ltr|rtl) #IMPLIED"
|
||||
>
|
||||
|
||||
<!-- attributes for common UI events
|
||||
onclick a pointer button was clicked
|
||||
ondblclick a pointer button was double clicked
|
||||
onmousedown a pointer button was pressed down
|
||||
onmouseup a pointer button was released
|
||||
onmousemove a pointer was moved onto the element
|
||||
onmouseout a pointer was moved away from the element
|
||||
onkeypress a key was pressed and released
|
||||
onkeydown a key was pressed down
|
||||
onkeyup a key was released
|
||||
-->
|
||||
<!ENTITY % events
|
||||
"onclick %Script; #IMPLIED
|
||||
ondblclick %Script; #IMPLIED
|
||||
onmousedown %Script; #IMPLIED
|
||||
onmouseup %Script; #IMPLIED
|
||||
onmouseover %Script; #IMPLIED
|
||||
onmousemove %Script; #IMPLIED
|
||||
onmouseout %Script; #IMPLIED
|
||||
onkeypress %Script; #IMPLIED
|
||||
onkeydown %Script; #IMPLIED
|
||||
onkeyup %Script; #IMPLIED"
|
||||
>
|
||||
|
||||
<!-- attributes for elements that can get the focus
|
||||
accesskey accessibility key character
|
||||
tabindex position in tabbing order
|
||||
onfocus the element got the focus
|
||||
onblur the element lost the focus
|
||||
-->
|
||||
<!ENTITY % focus
|
||||
"accesskey %Character; #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED"
|
||||
>
|
||||
|
||||
<!ENTITY % attrs "%coreattrs; %i18n; %events;">
|
||||
|
||||
<!--=================== Text Elements ====================================-->
|
||||
|
||||
<!ENTITY % special
|
||||
"br | span | bdo | object | img | map">
|
||||
|
||||
<!ENTITY % fontstyle "tt | i | b | big | small">
|
||||
|
||||
<!ENTITY % phrase "em | strong | dfn | code | q | sub | sup |
|
||||
samp | kbd | var | cite | abbr | acronym">
|
||||
|
||||
<!ENTITY % inline.forms "input | select | textarea | label | button">
|
||||
|
||||
<!-- these can occur at block or inline level -->
|
||||
<!ENTITY % misc "ins | del | script | noscript">
|
||||
|
||||
<!ENTITY % inline "a | %special; | %fontstyle; | %phrase; | %inline.forms;">
|
||||
|
||||
<!-- %Inline; covers inline or "text-level" elements -->
|
||||
<!ENTITY % Inline "(#PCDATA | %inline; | %misc;)*">
|
||||
|
||||
<!--================== Block level elements ==============================-->
|
||||
|
||||
<!ENTITY % heading "h1|h2|h3|h4|h5|h6">
|
||||
<!ENTITY % lists "ul | ol | dl">
|
||||
<!ENTITY % blocktext "pre | hr | blockquote | address">
|
||||
|
||||
<!ENTITY % block
|
||||
"p | %heading; | div | %lists; | %blocktext; | fieldset | table">
|
||||
|
||||
<!ENTITY % Block "(%block; | form | %misc;)*">
|
||||
|
||||
<!-- %Flow; mixes Block and Inline and is used for list items etc. -->
|
||||
<!ENTITY % Flow "(#PCDATA | %block; | form | %inline; | %misc;)*">
|
||||
|
||||
<!--================== Content models for exclusions =====================-->
|
||||
|
||||
<!-- a elements use %Inline; excluding a -->
|
||||
|
||||
<!ENTITY % a.content
|
||||
"(#PCDATA | %special; | %fontstyle; | %phrase; | %inline.forms; | %misc;)*">
|
||||
|
||||
<!-- pre uses %Inline excluding img, object, big, small, sup or sup -->
|
||||
|
||||
<!ENTITY % pre.content
|
||||
"(#PCDATA | a | br | span | bdo | map | tt | i | b |
|
||||
%phrase; | %inline.forms;)*">
|
||||
|
||||
<!-- form uses %Block; excluding form -->
|
||||
|
||||
<!ENTITY % form.content "(%block; | %misc;)*">
|
||||
|
||||
<!-- button uses %Flow; but excludes a, form and form controls -->
|
||||
|
||||
<!ENTITY % button.content
|
||||
"(#PCDATA | p | %heading; | div | %lists; | %blocktext; |
|
||||
table | %special; | %fontstyle; | %phrase; | %misc;)*">
|
||||
|
||||
<!--================ Document Structure ==================================-->
|
||||
|
||||
<!-- the namespace URI designates the document profile -->
|
||||
|
||||
<!ELEMENT html (head, body)>
|
||||
<!ATTLIST html
|
||||
%i18n;
|
||||
xmlns %URI; #FIXED 'http://www.w3.org/1999/xhtml'
|
||||
>
|
||||
|
||||
<!--================ Document Head =======================================-->
|
||||
|
||||
<!ENTITY % head.misc "(script|style|meta|link|object)*">
|
||||
|
||||
<!-- content model is %head.misc; combined with a single
|
||||
title and an optional base element in any order -->
|
||||
|
||||
<!ELEMENT head (%head.misc;,
|
||||
((title, %head.misc;, (base, %head.misc;)?) |
|
||||
(base, %head.misc;, (title, %head.misc;))))>
|
||||
|
||||
<!ATTLIST head
|
||||
%i18n;
|
||||
profile %URI; #IMPLIED
|
||||
>
|
||||
|
||||
<!-- The title element is not considered part of the flow of text.
|
||||
It should be displayed, for example as the page header or
|
||||
window title. Exactly one title is required per document.
|
||||
-->
|
||||
<!ELEMENT title (#PCDATA)>
|
||||
<!ATTLIST title %i18n;>
|
||||
|
||||
<!-- document base URI -->
|
||||
|
||||
<!ELEMENT base EMPTY>
|
||||
<!ATTLIST base
|
||||
href %URI; #IMPLIED
|
||||
>
|
||||
|
||||
<!-- generic metainformation -->
|
||||
<!ELEMENT meta EMPTY>
|
||||
<!ATTLIST meta
|
||||
%i18n;
|
||||
http-equiv CDATA #IMPLIED
|
||||
name CDATA #IMPLIED
|
||||
content CDATA #REQUIRED
|
||||
scheme CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Relationship values can be used in principle:
|
||||
|
||||
a) for document specific toolbars/menus when used
|
||||
with the link element in document head e.g.
|
||||
start, contents, previous, next, index, end, help
|
||||
b) to link to a separate style sheet (rel="stylesheet")
|
||||
c) to make a link to a script (rel="script")
|
||||
d) by stylesheets to control how collections of
|
||||
html nodes are rendered into printed documents
|
||||
e) to make a link to a printable version of this document
|
||||
e.g. a PostScript or PDF version (rel="alternate" media="print")
|
||||
-->
|
||||
|
||||
<!ELEMENT link EMPTY>
|
||||
<!ATTLIST link
|
||||
%attrs;
|
||||
charset %Charset; #IMPLIED
|
||||
href %URI; #IMPLIED
|
||||
hreflang %LanguageCode; #IMPLIED
|
||||
type %ContentType; #IMPLIED
|
||||
rel %LinkTypes; #IMPLIED
|
||||
rev %LinkTypes; #IMPLIED
|
||||
media %MediaDesc; #IMPLIED
|
||||
>
|
||||
|
||||
<!-- style info, which may include CDATA sections -->
|
||||
<!ELEMENT style (#PCDATA)>
|
||||
<!ATTLIST style
|
||||
%i18n;
|
||||
type %ContentType; #REQUIRED
|
||||
media %MediaDesc; #IMPLIED
|
||||
title %Text; #IMPLIED
|
||||
xml:space (preserve) #FIXED 'preserve'
|
||||
>
|
||||
|
||||
<!-- script statements, which may include CDATA sections -->
|
||||
<!ELEMENT script (#PCDATA)>
|
||||
<!ATTLIST script
|
||||
charset %Charset; #IMPLIED
|
||||
type %ContentType; #REQUIRED
|
||||
src %URI; #IMPLIED
|
||||
defer (defer) #IMPLIED
|
||||
xml:space (preserve) #FIXED 'preserve'
|
||||
>
|
||||
|
||||
<!-- alternate content container for non script-based rendering -->
|
||||
|
||||
<!ELEMENT noscript %Block;>
|
||||
<!ATTLIST noscript
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Document Body ====================================-->
|
||||
|
||||
<!ELEMENT body %Block;>
|
||||
<!ATTLIST body
|
||||
%attrs;
|
||||
onload %Script; #IMPLIED
|
||||
onunload %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT div %Flow;> <!-- generic language/style container -->
|
||||
<!ATTLIST div
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Paragraphs =======================================-->
|
||||
|
||||
<!ELEMENT p %Inline;>
|
||||
<!ATTLIST p
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Headings =========================================-->
|
||||
|
||||
<!--
|
||||
There are six levels of headings from h1 (the most important)
|
||||
to h6 (the least important).
|
||||
-->
|
||||
|
||||
<!ELEMENT h1 %Inline;>
|
||||
<!ATTLIST h1
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT h2 %Inline;>
|
||||
<!ATTLIST h2
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT h3 %Inline;>
|
||||
<!ATTLIST h3
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT h4 %Inline;>
|
||||
<!ATTLIST h4
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT h5 %Inline;>
|
||||
<!ATTLIST h5
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT h6 %Inline;>
|
||||
<!ATTLIST h6
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Lists ============================================-->
|
||||
|
||||
<!-- Unordered list -->
|
||||
|
||||
<!ELEMENT ul (li)+>
|
||||
<!ATTLIST ul
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!-- Ordered (numbered) list -->
|
||||
|
||||
<!ELEMENT ol (li)+>
|
||||
<!ATTLIST ol
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!-- list item -->
|
||||
|
||||
<!ELEMENT li %Flow;>
|
||||
<!ATTLIST li
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!-- definition lists - dt for term, dd for its definition -->
|
||||
|
||||
<!ELEMENT dl (dt|dd)+>
|
||||
<!ATTLIST dl
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT dt %Inline;>
|
||||
<!ATTLIST dt
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT dd %Flow;>
|
||||
<!ATTLIST dd
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Address ==========================================-->
|
||||
|
||||
<!-- information on author -->
|
||||
|
||||
<!ELEMENT address %Inline;>
|
||||
<!ATTLIST address
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Horizontal Rule ==================================-->
|
||||
|
||||
<!ELEMENT hr EMPTY>
|
||||
<!ATTLIST hr
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--=================== Preformatted Text ================================-->
|
||||
|
||||
<!-- content is %Inline; excluding "img|object|big|small|sub|sup" -->
|
||||
|
||||
<!ELEMENT pre %pre.content;>
|
||||
<!ATTLIST pre
|
||||
%attrs;
|
||||
xml:space (preserve) #FIXED 'preserve'
|
||||
>
|
||||
|
||||
<!--=================== Block-like Quotes ================================-->
|
||||
|
||||
<!ELEMENT blockquote %Block;>
|
||||
<!ATTLIST blockquote
|
||||
%attrs;
|
||||
cite %URI; #IMPLIED
|
||||
>
|
||||
|
||||
<!--=================== Inserted/Deleted Text ============================-->
|
||||
|
||||
<!--
|
||||
ins/del are allowed in block and inline content, but its
|
||||
inappropriate to include block content within an ins element
|
||||
occurring in inline content.
|
||||
-->
|
||||
<!ELEMENT ins %Flow;>
|
||||
<!ATTLIST ins
|
||||
%attrs;
|
||||
cite %URI; #IMPLIED
|
||||
datetime %Datetime; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT del %Flow;>
|
||||
<!ATTLIST del
|
||||
%attrs;
|
||||
cite %URI; #IMPLIED
|
||||
datetime %Datetime; #IMPLIED
|
||||
>
|
||||
|
||||
<!--================== The Anchor Element ================================-->
|
||||
|
||||
<!-- content is %Inline; except that anchors shouldn't be nested -->
|
||||
|
||||
<!ELEMENT a %a.content;>
|
||||
<!ATTLIST a
|
||||
%attrs;
|
||||
charset %Charset; #IMPLIED
|
||||
type %ContentType; #IMPLIED
|
||||
name NMTOKEN #IMPLIED
|
||||
href %URI; #IMPLIED
|
||||
hreflang %LanguageCode; #IMPLIED
|
||||
rel %LinkTypes; #IMPLIED
|
||||
rev %LinkTypes; #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
shape %Shape; "rect"
|
||||
coords %Coords; #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!--===================== Inline Elements ================================-->
|
||||
|
||||
<!ELEMENT span %Inline;> <!-- generic language/style container -->
|
||||
<!ATTLIST span
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT bdo %Inline;> <!-- I18N BiDi over-ride -->
|
||||
<!ATTLIST bdo
|
||||
%coreattrs;
|
||||
%events;
|
||||
lang %LanguageCode; #IMPLIED
|
||||
xml:lang %LanguageCode; #IMPLIED
|
||||
dir (ltr|rtl) #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT br EMPTY> <!-- forced line break -->
|
||||
<!ATTLIST br
|
||||
%coreattrs;
|
||||
>
|
||||
|
||||
<!ELEMENT em %Inline;> <!-- emphasis -->
|
||||
<!ATTLIST em %attrs;>
|
||||
|
||||
<!ELEMENT strong %Inline;> <!-- strong emphasis -->
|
||||
<!ATTLIST strong %attrs;>
|
||||
|
||||
<!ELEMENT dfn %Inline;> <!-- definitional -->
|
||||
<!ATTLIST dfn %attrs;>
|
||||
|
||||
<!ELEMENT code %Inline;> <!-- program code -->
|
||||
<!ATTLIST code %attrs;>
|
||||
|
||||
<!ELEMENT samp %Inline;> <!-- sample -->
|
||||
<!ATTLIST samp %attrs;>
|
||||
|
||||
<!ELEMENT kbd %Inline;> <!-- something user would type -->
|
||||
<!ATTLIST kbd %attrs;>
|
||||
|
||||
<!ELEMENT var %Inline;> <!-- variable -->
|
||||
<!ATTLIST var %attrs;>
|
||||
|
||||
<!ELEMENT cite %Inline;> <!-- citation -->
|
||||
<!ATTLIST cite %attrs;>
|
||||
|
||||
<!ELEMENT abbr %Inline;> <!-- abbreviation -->
|
||||
<!ATTLIST abbr %attrs;>
|
||||
|
||||
<!ELEMENT acronym %Inline;> <!-- acronym -->
|
||||
<!ATTLIST acronym %attrs;>
|
||||
|
||||
<!ELEMENT q %Inline;> <!-- inlined quote -->
|
||||
<!ATTLIST q
|
||||
%attrs;
|
||||
cite %URI; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT sub %Inline;> <!-- subscript -->
|
||||
<!ATTLIST sub %attrs;>
|
||||
|
||||
<!ELEMENT sup %Inline;> <!-- superscript -->
|
||||
<!ATTLIST sup %attrs;>
|
||||
|
||||
<!ELEMENT tt %Inline;> <!-- fixed pitch font -->
|
||||
<!ATTLIST tt %attrs;>
|
||||
|
||||
<!ELEMENT i %Inline;> <!-- italic font -->
|
||||
<!ATTLIST i %attrs;>
|
||||
|
||||
<!ELEMENT b %Inline;> <!-- bold font -->
|
||||
<!ATTLIST b %attrs;>
|
||||
|
||||
<!ELEMENT big %Inline;> <!-- bigger font -->
|
||||
<!ATTLIST big %attrs;>
|
||||
|
||||
<!ELEMENT small %Inline;> <!-- smaller font -->
|
||||
<!ATTLIST small %attrs;>
|
||||
|
||||
<!--==================== Object ======================================-->
|
||||
<!--
|
||||
object is used to embed objects as part of HTML pages.
|
||||
param elements should precede other content. Parameters
|
||||
can also be expressed as attribute/value pairs on the
|
||||
object element itself when brevity is desired.
|
||||
-->
|
||||
|
||||
<!ELEMENT object (#PCDATA | param | %block; | form | %inline; | %misc;)*>
|
||||
<!ATTLIST object
|
||||
%attrs;
|
||||
declare (declare) #IMPLIED
|
||||
classid %URI; #IMPLIED
|
||||
codebase %URI; #IMPLIED
|
||||
data %URI; #IMPLIED
|
||||
type %ContentType; #IMPLIED
|
||||
codetype %ContentType; #IMPLIED
|
||||
archive %UriList; #IMPLIED
|
||||
standby %Text; #IMPLIED
|
||||
height %Length; #IMPLIED
|
||||
width %Length; #IMPLIED
|
||||
usemap %URI; #IMPLIED
|
||||
name NMTOKEN #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
param is used to supply a named property value.
|
||||
In XML it would seem natural to follow RDF and support an
|
||||
abbreviated syntax where the param elements are replaced
|
||||
by attribute value pairs on the object start tag.
|
||||
-->
|
||||
<!ELEMENT param EMPTY>
|
||||
<!ATTLIST param
|
||||
id ID #IMPLIED
|
||||
name CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
valuetype (data|ref|object) "data"
|
||||
type %ContentType; #IMPLIED
|
||||
>
|
||||
|
||||
<!--=================== Images ===========================================-->
|
||||
|
||||
<!--
|
||||
To avoid accessibility problems for people who aren't
|
||||
able to see the image, you should provide a text
|
||||
description using the alt and longdesc attributes.
|
||||
In addition, avoid the use of server-side image maps.
|
||||
Note that in this DTD there is no name attribute. That
|
||||
is only available in the transitional and frameset DTD.
|
||||
-->
|
||||
|
||||
<!ELEMENT img EMPTY>
|
||||
<!ATTLIST img
|
||||
%attrs;
|
||||
src %URI; #REQUIRED
|
||||
alt %Text; #REQUIRED
|
||||
longdesc %URI; #IMPLIED
|
||||
height %Length; #IMPLIED
|
||||
width %Length; #IMPLIED
|
||||
usemap %URI; #IMPLIED
|
||||
ismap (ismap) #IMPLIED
|
||||
>
|
||||
|
||||
<!-- usemap points to a map element which may be in this document
|
||||
or an external document, although the latter is not widely supported -->
|
||||
|
||||
<!--================== Client-side image maps ============================-->
|
||||
|
||||
<!-- These can be placed in the same document or grouped in a
|
||||
separate document although this isn't yet widely supported -->
|
||||
|
||||
<!ELEMENT map ((%block; | form | %misc;)+ | area+)>
|
||||
<!ATTLIST map
|
||||
%i18n;
|
||||
%events;
|
||||
id ID #REQUIRED
|
||||
class CDATA #IMPLIED
|
||||
style %StyleSheet; #IMPLIED
|
||||
title %Text; #IMPLIED
|
||||
name NMTOKEN #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT area EMPTY>
|
||||
<!ATTLIST area
|
||||
%attrs;
|
||||
shape %Shape; "rect"
|
||||
coords %Coords; #IMPLIED
|
||||
href %URI; #IMPLIED
|
||||
nohref (nohref) #IMPLIED
|
||||
alt %Text; #REQUIRED
|
||||
tabindex %Number; #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!--================ Forms ===============================================-->
|
||||
<!ELEMENT form %form.content;> <!-- forms shouldn't be nested -->
|
||||
|
||||
<!ATTLIST form
|
||||
%attrs;
|
||||
action %URI; #REQUIRED
|
||||
method (get|post) "get"
|
||||
enctype %ContentType; "application/x-www-form-urlencoded"
|
||||
onsubmit %Script; #IMPLIED
|
||||
onreset %Script; #IMPLIED
|
||||
accept %ContentTypes; #IMPLIED
|
||||
accept-charset %Charsets; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Each label must not contain more than ONE field
|
||||
Label elements shouldn't be nested.
|
||||
-->
|
||||
<!ELEMENT label %Inline;>
|
||||
<!ATTLIST label
|
||||
%attrs;
|
||||
for IDREF #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!ENTITY % InputType
|
||||
"(text | password | checkbox |
|
||||
radio | submit | reset |
|
||||
file | hidden | image | button)"
|
||||
>
|
||||
|
||||
<!-- the name attribute is required for all but submit & reset -->
|
||||
|
||||
<!ELEMENT input EMPTY> <!-- form control -->
|
||||
<!ATTLIST input
|
||||
%attrs;
|
||||
type %InputType; "text"
|
||||
name CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
checked (checked) #IMPLIED
|
||||
disabled (disabled) #IMPLIED
|
||||
readonly (readonly) #IMPLIED
|
||||
size CDATA #IMPLIED
|
||||
maxlength %Number; #IMPLIED
|
||||
src %URI; #IMPLIED
|
||||
alt CDATA #IMPLIED
|
||||
usemap %URI; #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
onselect %Script; #IMPLIED
|
||||
onchange %Script; #IMPLIED
|
||||
accept %ContentTypes; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT select (optgroup|option)+> <!-- option selector -->
|
||||
<!ATTLIST select
|
||||
%attrs;
|
||||
name CDATA #IMPLIED
|
||||
size %Number; #IMPLIED
|
||||
multiple (multiple) #IMPLIED
|
||||
disabled (disabled) #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
onchange %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT optgroup (option)+> <!-- option group -->
|
||||
<!ATTLIST optgroup
|
||||
%attrs;
|
||||
disabled (disabled) #IMPLIED
|
||||
label %Text; #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT option (#PCDATA)> <!-- selectable choice -->
|
||||
<!ATTLIST option
|
||||
%attrs;
|
||||
selected (selected) #IMPLIED
|
||||
disabled (disabled) #IMPLIED
|
||||
label %Text; #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!ELEMENT textarea (#PCDATA)> <!-- multi-line text field -->
|
||||
<!ATTLIST textarea
|
||||
%attrs;
|
||||
name CDATA #IMPLIED
|
||||
rows %Number; #REQUIRED
|
||||
cols %Number; #REQUIRED
|
||||
disabled (disabled) #IMPLIED
|
||||
readonly (readonly) #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
onselect %Script; #IMPLIED
|
||||
onchange %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
The fieldset element is used to group form fields.
|
||||
Only one legend element should occur in the content
|
||||
and if present should only be preceded by whitespace.
|
||||
-->
|
||||
<!ELEMENT fieldset (#PCDATA | legend | %block; | form | %inline; | %misc;)*>
|
||||
<!ATTLIST fieldset
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!ELEMENT legend %Inline;> <!-- fieldset label -->
|
||||
<!ATTLIST legend
|
||||
%attrs;
|
||||
accesskey %Character; #IMPLIED
|
||||
>
|
||||
|
||||
<!--
|
||||
Content is %Flow; excluding a, form and form controls
|
||||
-->
|
||||
<!ELEMENT button %button.content;> <!-- push button -->
|
||||
<!ATTLIST button
|
||||
%attrs;
|
||||
name CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
type (button|submit|reset) "submit"
|
||||
disabled (disabled) #IMPLIED
|
||||
tabindex %Number; #IMPLIED
|
||||
accesskey %Character; #IMPLIED
|
||||
onfocus %Script; #IMPLIED
|
||||
onblur %Script; #IMPLIED
|
||||
>
|
||||
|
||||
<!--======================= Tables =======================================-->
|
||||
|
||||
<!-- Derived from IETF HTML table standard, see [RFC1942] -->
|
||||
|
||||
<!--
|
||||
The border attribute sets the thickness of the frame around the
|
||||
table. The default units are screen pixels.
|
||||
|
||||
The frame attribute specifies which parts of the frame around
|
||||
the table should be rendered. The values are not the same as
|
||||
CALS to avoid a name clash with the valign attribute.
|
||||
-->
|
||||
<!ENTITY % TFrame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
|
||||
|
||||
<!--
|
||||
The rules attribute defines which rules to draw between cells:
|
||||
|
||||
If rules is absent then assume:
|
||||
"none" if border is absent or border="0" otherwise "all"
|
||||
-->
|
||||
|
||||
<!ENTITY % TRules "(none | groups | rows | cols | all)">
|
||||
|
||||
<!-- horizontal placement of table relative to document -->
|
||||
<!ENTITY % TAlign "(left|center|right)">
|
||||
|
||||
<!-- horizontal alignment attributes for cell contents
|
||||
|
||||
char alignment char, e.g. char=':'
|
||||
charoff offset for alignment char
|
||||
-->
|
||||
<!ENTITY % cellhalign
|
||||
"align (left|center|right|justify|char) #IMPLIED
|
||||
char %Character; #IMPLIED
|
||||
charoff %Length; #IMPLIED"
|
||||
>
|
||||
|
||||
<!-- vertical alignment attributes for cell contents -->
|
||||
<!ENTITY % cellvalign
|
||||
"valign (top|middle|bottom|baseline) #IMPLIED"
|
||||
>
|
||||
|
||||
<!ELEMENT table
|
||||
(caption?, (col*|colgroup*), thead?, tfoot?, (tbody+|tr+))>
|
||||
<!ELEMENT caption %Inline;>
|
||||
<!ELEMENT thead (tr)+>
|
||||
<!ELEMENT tfoot (tr)+>
|
||||
<!ELEMENT tbody (tr)+>
|
||||
<!ELEMENT colgroup (col)*>
|
||||
<!ELEMENT col EMPTY>
|
||||
<!ELEMENT tr (th|td)+>
|
||||
<!ELEMENT th %Flow;>
|
||||
<!ELEMENT td %Flow;>
|
||||
|
||||
<!ATTLIST table
|
||||
%attrs;
|
||||
summary %Text; #IMPLIED
|
||||
width %Length; #IMPLIED
|
||||
border %Pixels; #IMPLIED
|
||||
frame %TFrame; #IMPLIED
|
||||
rules %TRules; #IMPLIED
|
||||
cellspacing %Length; #IMPLIED
|
||||
cellpadding %Length; #IMPLIED
|
||||
>
|
||||
|
||||
<!ENTITY % CAlign "(top|bottom|left|right)">
|
||||
|
||||
<!ATTLIST caption
|
||||
%attrs;
|
||||
>
|
||||
|
||||
<!--
|
||||
colgroup groups a set of col elements. It allows you to group
|
||||
several semantically related columns together.
|
||||
-->
|
||||
<!ATTLIST colgroup
|
||||
%attrs;
|
||||
span %Number; "1"
|
||||
width %MultiLength; #IMPLIED
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!--
|
||||
col elements define the alignment properties for cells in
|
||||
one or more columns.
|
||||
|
||||
The width attribute specifies the width of the columns, e.g.
|
||||
|
||||
width=64 width in screen pixels
|
||||
width=0.5* relative width of 0.5
|
||||
|
||||
The span attribute causes the attributes of one
|
||||
col element to apply to more than one column.
|
||||
-->
|
||||
<!ATTLIST col
|
||||
%attrs;
|
||||
span %Number; "1"
|
||||
width %MultiLength; #IMPLIED
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!--
|
||||
Use thead to duplicate headers when breaking table
|
||||
across page boundaries, or for static headers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use tfoot to duplicate footers when breaking table
|
||||
across page boundaries, or for static footers when
|
||||
tbody sections are rendered in scrolling panel.
|
||||
|
||||
Use multiple tbody sections when rules are needed
|
||||
between groups of table rows.
|
||||
-->
|
||||
<!ATTLIST thead
|
||||
%attrs;
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!ATTLIST tfoot
|
||||
%attrs;
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!ATTLIST tbody
|
||||
%attrs;
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!ATTLIST tr
|
||||
%attrs;
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
|
||||
<!-- Scope is simpler than headers attribute for common tables -->
|
||||
<!ENTITY % Scope "(row|col|rowgroup|colgroup)">
|
||||
|
||||
<!-- th is for headers, td for data and for cells acting as both -->
|
||||
|
||||
<!ATTLIST th
|
||||
%attrs;
|
||||
abbr %Text; #IMPLIED
|
||||
axis CDATA #IMPLIED
|
||||
headers IDREFS #IMPLIED
|
||||
scope %Scope; #IMPLIED
|
||||
rowspan %Number; "1"
|
||||
colspan %Number; "1"
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
||||
<!ATTLIST td
|
||||
%attrs;
|
||||
abbr %Text; #IMPLIED
|
||||
axis CDATA #IMPLIED
|
||||
headers IDREFS #IMPLIED
|
||||
scope %Scope; #IMPLIED
|
||||
rowspan %Number; "1"
|
||||
colspan %Number; "1"
|
||||
%cellhalign;
|
||||
%cellvalign;
|
||||
>
|
||||
|
1196
GSWeb.framework/DTDs/xhtml1-transitional.dtd
Normal file
1196
GSWeb.framework/DTDs/xhtml1-transitional.dtd
Normal file
File diff suppressed because it is too large
Load diff
|
@ -35,6 +35,18 @@ srcdir = .
|
|||
# The Bundle to be compiled
|
||||
GSWBUNDLE_NAME=GSWeb
|
||||
|
||||
# DTDs to install
|
||||
srcDTDDir = DTDs
|
||||
dstDTDDir = $(GNUSTEP_RESOURCES)/DTDs
|
||||
DTD_FILES = \
|
||||
xhtml-lat1.ent \
|
||||
xhtml-symbol.ent \
|
||||
xhtml-special.ent \
|
||||
xhtml1-strict.dtd \
|
||||
xhtml1-frameset.dtd \
|
||||
xhtml1-transitional.dtd
|
||||
|
||||
|
||||
# The bundle resource files and directories
|
||||
GSWeb_RESOURCE_FILES = \
|
||||
Resources/MIME.plist \
|
||||
|
@ -76,18 +88,20 @@ GSWSessionTimeOut.m \
|
|||
GSWStats.m \
|
||||
NSNonBlockingFileHandle.m \
|
||||
GSWTransactionRecord.m \
|
||||
GSWHTMLParser.m \
|
||||
GSWHTMLParserExt.m \
|
||||
GSWHTMLLexer.m \
|
||||
GSWHTMLAttrLexer.m \
|
||||
GSWHTMLAttrParser.m \
|
||||
GSWHTMLAttrParserExt.m \
|
||||
GSWeb.m \
|
||||
GSWBundle.m \
|
||||
NSObject+IVarAccess+PerformSel.m \
|
||||
NSString+Trimming.m \
|
||||
NSString+HTML.m \
|
||||
GSWTemplateParser.m \
|
||||
GSWTemplateParserANTLR.m \
|
||||
GSWTemplateParserXML.m \
|
||||
GSWHTMLParser.m \
|
||||
GSWHTMLParserExt.m \
|
||||
GSWHTMLLexer.m \
|
||||
GSWHTMLAttrLexer.m \
|
||||
GSWHTMLAttrParser.m \
|
||||
GSWHTMLAttrParserExt.m \
|
||||
GSWApplication.m \
|
||||
GSWAssociation.m \
|
||||
GSWComponent.m \
|
||||
|
@ -218,19 +232,11 @@ GSWForm.h \
|
|||
GSWFrame.h \
|
||||
GSWGenericContainer.h \
|
||||
GSWGenericElement.h \
|
||||
GSWHTMLAttrLexer.h \
|
||||
GSWHTMLAttrParser.h \
|
||||
GSWHTMLAttrParserExt.h \
|
||||
GSWHTMLAttrTokenTypes.h \
|
||||
GSWHTMLBareString.h \
|
||||
GSWHTMLComment.h \
|
||||
GSWHTMLDynamicElement.h \
|
||||
GSWHTMLLexer.h \
|
||||
GSWHTMLParser.h \
|
||||
GSWHTMLParserExt.h \
|
||||
GSWHTMLStaticElement.h \
|
||||
GSWHTMLStaticGroup.h \
|
||||
GSWHTMLTokenTypes.h \
|
||||
GSWHTMLURLValuedElement.h \
|
||||
GSWHiddenField.h \
|
||||
GSWHyperlink.h \
|
||||
|
@ -271,6 +277,16 @@ GSWString.h \
|
|||
GSWSubmitButton.h \
|
||||
GSWSwitchComponent.h \
|
||||
GSWTemplateParser.h \
|
||||
GSWTemplateParserANTLR.h \
|
||||
GSWTemplateParserXML.h \
|
||||
GSWHTMLAttrLexer.h \
|
||||
GSWHTMLAttrParser.h \
|
||||
GSWHTMLAttrParserExt.h \
|
||||
GSWHTMLAttrTokenTypes.h \
|
||||
GSWHTMLLexer.h \
|
||||
GSWHTMLParser.h \
|
||||
GSWHTMLParserExt.h \
|
||||
GSWHTMLTokenTypes.h \
|
||||
GSWText.h \
|
||||
GSWTextField.h \
|
||||
GSWToggle.h \
|
||||
|
|
|
@ -26,6 +26,9 @@ static char rcsId[] = "$Id$";
|
|||
#include <gsweb/GSWeb.framework/GSWeb.h>
|
||||
#include <extensions/NGReflection.h>
|
||||
#include <extensions/GarbageCollector.h>
|
||||
#if GDL2 // GDL2 implementation
|
||||
#include <EOAccess/EOModelGroup.h>
|
||||
#endif
|
||||
#include "stacktrace.h"
|
||||
#include "attach.h"
|
||||
|
||||
|
@ -1477,6 +1480,8 @@ int GSWApplicationMain(NSString* _applicationClassName,
|
|||
NSString* _monitorHost=[self _monitorHost];
|
||||
NSNumber* _workerThreadCount=[[self class]workerThreadCount];
|
||||
id _proxy=nil;
|
||||
NSDebugFLLog(@"monitor",@"monitorHost=%@",_monitorHost);
|
||||
NSDebugFLLog(@"monitor",@"workerThreadCount=%@",_workerThreadCount);
|
||||
[NSDistantObject setDebug:YES];
|
||||
remoteMonitorConnection = [NSConnection connectionWithRegisteredName:GSWMonitorServiceName
|
||||
host:_monitorHost];
|
||||
|
@ -2673,7 +2678,9 @@ int GSWApplicationMain(NSString* _applicationClassName,
|
|||
|
||||
-(BOOL)printsHTMLParserDiagnostics
|
||||
{
|
||||
return [GSWHTMLParser printsDiagnostics];
|
||||
//FIXME
|
||||
// return [GSWHTMLParser printsDiagnostics];
|
||||
return NO;
|
||||
};
|
||||
|
||||
@end
|
||||
|
@ -3793,12 +3800,13 @@ int GSWApplicationMain(NSString* _applicationClassName,
|
|||
//--------------------------------------------------------------------
|
||||
+(id)defaultModelGroup
|
||||
{
|
||||
#if GDL2 // GDL2 implementation
|
||||
//OK
|
||||
GSWResourceManager* _resourceManager=[[GSWApplication application] resourceManager];
|
||||
GSWDeployedBundle* _appProjectBundle=[_resourceManager _appProjectBundle];
|
||||
NSArray* _allFrameworkProjectBundles=[_resourceManager _allFrameworkProjectBundles];
|
||||
//return <EOModelGroup
|
||||
return [EOModelGroup defaultGroup];
|
||||
#else
|
||||
LOGClassFnNotImplemented();
|
||||
return nil;
|
||||
#endif
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
|
|
@ -33,10 +33,14 @@
|
|||
GSWAssociation* item;
|
||||
GSWAssociation* displayString;
|
||||
GSWAssociation* selections;
|
||||
#if !GSWEB_STRICT
|
||||
GSWAssociation* selectionValues;
|
||||
#endif
|
||||
GSWAssociation* selectedValues;
|
||||
GSWAssociation* size;
|
||||
GSWAssociation* multiple;
|
||||
GSWAssociation* escapeHTML;
|
||||
BOOL autoValue;//??
|
||||
};
|
||||
-(void)dealloc;
|
||||
|
||||
|
|
|
@ -28,32 +28,96 @@ static char rcsId[] = "$Id$";
|
|||
//====================================================================
|
||||
@implementation GSWBrowser
|
||||
|
||||
-(void)dealloc
|
||||
//--------------------------------------------------------------------
|
||||
-(id)initWithName:(NSString*)name_
|
||||
associations:(NSDictionary*)associations_
|
||||
contentElements:(NSArray*)elements_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
//OK
|
||||
NSMutableDictionary* _associations=nil;
|
||||
LOGObjectFnStartC("GSWBrowser");
|
||||
NSDebugMLLog(@"gswdync",@"name_=%@ associations_:%@ elements=%@",name_,associations_,elements_);
|
||||
_associations=[NSMutableDictionary dictionaryWithDictionary:associations_];
|
||||
[_associations removeObjectForKey:list__Key];
|
||||
[_associations removeObjectForKey:item__Key];
|
||||
[_associations removeObjectForKey:displayString__Key];
|
||||
[_associations removeObjectForKey:selections__Key];
|
||||
#if !GSWEB_STRICT
|
||||
[_associations removeObjectForKey:selectionValues__Key];
|
||||
#endif
|
||||
[_associations removeObjectForKey:selectedValues__Key];
|
||||
[_associations removeObjectForKey:size__Key];
|
||||
[_associations removeObjectForKey:multiple__Key];
|
||||
[_associations removeObjectForKey:escapeHTML__Key];
|
||||
|
||||
if ((self=[super initWithName:name_
|
||||
associations:_associations
|
||||
contentElements:nil]))
|
||||
{
|
||||
list=[[associations_ objectForKey:list__Key
|
||||
withDefaultObject:[list autorelease]] retain];
|
||||
item=[[associations_ objectForKey:item__Key
|
||||
withDefaultObject:[item autorelease]] retain];
|
||||
displayString=[[associations_ objectForKey:displayString__Key
|
||||
withDefaultObject:[displayString autorelease]] retain];
|
||||
selections=[[associations_ objectForKey:selection__Key
|
||||
withDefaultObject:[selections autorelease]] retain];
|
||||
if (selections && ![selections isValueSettable])
|
||||
{
|
||||
//TODO
|
||||
};
|
||||
|
||||
#if !GSWEB_STRICT
|
||||
selectionValues=[[associations_ objectForKey:selectionValue__Key
|
||||
withDefaultObject:[selectionValues autorelease]] retain];
|
||||
if (selectionValues && ![selectionValues isValueSettable])
|
||||
{
|
||||
//TODO
|
||||
};
|
||||
#endif
|
||||
|
||||
selectedValues=[[associations_ objectForKey:selectedValues__Key
|
||||
withDefaultObject:[selectedValues autorelease]] retain];
|
||||
size=[[associations_ objectForKey:size__Key
|
||||
withDefaultObject:[size autorelease]] retain];
|
||||
multiple=[[associations_ objectForKey:multiple__Key
|
||||
withDefaultObject:[multiple autorelease]] retain];
|
||||
escapeHTML=[[associations_ objectForKey:escapeHTML__Key
|
||||
withDefaultObject:[escapeHTML autorelease]] retain];
|
||||
};
|
||||
LOGObjectFnStopC("GSWBrowser");
|
||||
return self;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(id)initWithName:(NSString*)name_
|
||||
associations:(NSDictionary*)associations_
|
||||
contentElements:(NSArray*)elements_
|
||||
-(void)dealloc
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
return nil;
|
||||
DESTROY(list);
|
||||
DESTROY(item);
|
||||
DESTROY(displayString);
|
||||
DESTROY(selections);
|
||||
#if !GSWEB_STRICT
|
||||
DESTROY(selectionValues);
|
||||
#endif
|
||||
DESTROY(selectedValues);
|
||||
DESTROY(size);
|
||||
DESTROY(multiple);
|
||||
DESTROY(escapeHTML);
|
||||
[super dealloc];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSString*)description
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
return nil;
|
||||
return [NSString stringWithFormat:@"<%s %p>",
|
||||
object_get_class_name(self),
|
||||
(void*)self];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSString*)elementName
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
return nil;
|
||||
return @"SELECT";
|
||||
};
|
||||
|
||||
@end
|
||||
|
@ -62,29 +126,322 @@ static char rcsId[] = "$Id$";
|
|||
@implementation GSWBrowser (GSWBrowserA)
|
||||
|
||||
-(void)appendToResponse:(GSWResponse*)response_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
//OK
|
||||
GSWRequest* _request=nil;
|
||||
BOOL _isFromClientComponent=NO;
|
||||
GSWComponent* _component=nil;
|
||||
NSArray* _listValue=nil;
|
||||
id _selectionsValue=nil;
|
||||
id _selectedValuesValue=nil;
|
||||
id _valueValue=nil;
|
||||
id _itemValue=nil;
|
||||
id _displayStringValue=nil;
|
||||
BOOL _escapeHTML=YES;
|
||||
id _escapeHTMLValue=nil;
|
||||
BOOL _isMultiple=NO;
|
||||
int i=0;
|
||||
BOOL _inOptGroup=NO;
|
||||
#ifndef ENABLE_OPTGROUP
|
||||
BOOL _optGroupLabel=NO;
|
||||
#endif
|
||||
LOGObjectFnStartC("GSWBrowser");
|
||||
[self resetAutoValue];
|
||||
autoValue = NO;
|
||||
_request=[context_ request];
|
||||
_isFromClientComponent=[_request isFromClientComponent];
|
||||
_component=[context_ component];
|
||||
//TODO: multiple
|
||||
[super appendToResponse:response_
|
||||
inContext:context_];
|
||||
_listValue=[list valueInComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"_listValue=%@",_listValue);
|
||||
NSAssert3(!_listValue || [_listValue respondsToSelector:@selector(count)],
|
||||
@"The list (%@) (%@ of class:%@) doesn't respond to 'count'",
|
||||
list,
|
||||
_listValue,
|
||||
[_listValue class]);
|
||||
_selectionsValue=[selections valueInComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"selections=%@",selections);
|
||||
NSDebugMLLog(@"gswdync",@"_selectionsValue=%@",_selectionsValue);
|
||||
_selectedValuesValue=[selectedValues valueInComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"selectedValues=%@",selectedValues);
|
||||
NSDebugMLLog(@"gswdync",@"_selectedValuesValue=%@",_selectedValuesValue);
|
||||
if (escapeHTML)
|
||||
{
|
||||
_escapeHTMLValue=[escapeHTML valueInComponent:_component];
|
||||
_escapeHTML=boolValueFor(_escapeHTMLValue);
|
||||
};
|
||||
if (multiple)
|
||||
{
|
||||
id _multipleValue=nil;
|
||||
_multipleValue=[multiple valueInComponent:_component];
|
||||
_isMultiple=boolValueFor(_multipleValue);
|
||||
};
|
||||
for(i=0;i<[_listValue count];i++)
|
||||
{
|
||||
NSDebugMLLog(@"gswdync",@"_inOptGroup=%s",(_inOptGroup ? "YES" : "NO"));
|
||||
_itemValue=[_listValue objectAtIndex:i];
|
||||
if (item)
|
||||
[item setValue:_itemValue
|
||||
inComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"_itemValue=%@",_itemValue);
|
||||
if (_itemValue)
|
||||
{
|
||||
NSDebugMLLog(@"gswdync",@"value=%@",value);
|
||||
_valueValue=[self valueInContext:context_];
|
||||
NSDebugMLLog(@"gswdync",@"_valueValue=%@",_valueValue);
|
||||
if (_valueValue)
|
||||
{
|
||||
BOOL _isEqual;
|
||||
|
||||
NSDebugMLLog0(@"gswdync",@"Adding OPTION");
|
||||
[response_ _appendContentAsciiString:@"\n<OPTION"];
|
||||
if (selections)
|
||||
{
|
||||
if(value)
|
||||
_isEqual=SBIsValueIsIn(_valueValue,_selectionsValue);
|
||||
else
|
||||
_isEqual=SBIsValueIsIn(_itemValue,_selectionsValue);
|
||||
|
||||
if (_isEqual)
|
||||
{
|
||||
[response_ appendContentCharacter:' '];
|
||||
[response_ _appendContentAsciiString:@"selected"];
|
||||
};
|
||||
};
|
||||
if (_isEqual == NO && selectedValues)
|
||||
{
|
||||
if(value)
|
||||
_isEqual=SBIsValueIsIn(_valueValue,_selectedValuesValue);
|
||||
else
|
||||
_isEqual=SBIsValueIsIn(_itemValue,_selectedValuesValue);
|
||||
|
||||
if (_isEqual)
|
||||
{
|
||||
[response_ appendContentCharacter:' '];
|
||||
[response_ _appendContentAsciiString:@"selected"];
|
||||
};
|
||||
};
|
||||
if (value == nil)
|
||||
autoValue = YES;
|
||||
if (_valueValue)
|
||||
{
|
||||
[response_ _appendContentAsciiString:@" value=\""];
|
||||
[response_ _appendContentAsciiString:_valueValue];
|
||||
[response_ appendContentCharacter:'"'];
|
||||
};
|
||||
[response_ appendContentCharacter:'>'];
|
||||
};
|
||||
_displayStringValue=nil;
|
||||
if (displayString)
|
||||
{
|
||||
NSDebugMLLog(@"gswdync",@"displayString=%@",displayString);
|
||||
_displayStringValue=[displayString valueInComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"_displayStringValue=%@",_displayStringValue);
|
||||
};
|
||||
|
||||
if (_displayStringValue)
|
||||
{
|
||||
if (!_valueValue)
|
||||
{
|
||||
if (_inOptGroup)
|
||||
{
|
||||
NSDebugMLLog0(@"gswdync",@"Adding /OPTGROUP");
|
||||
#ifdef ENABLE_OPTGROUP
|
||||
[response_ _appendContentAsciiString:@"\n</OPTGROUP>"];
|
||||
#endif
|
||||
_inOptGroup=NO;
|
||||
};
|
||||
NSDebugMLLog0(@"gswdync",@"Adding OPTGROUP");
|
||||
#ifdef ENABLE_OPTGROUP
|
||||
[response_ _appendContentAsciiString:@"\n<OPTGROUP label=\""];
|
||||
#else
|
||||
#if 0
|
||||
[response_ _appendContentAsciiString:@"\n<OPTION>-- "];
|
||||
_optGroupLabel=YES;
|
||||
#else
|
||||
[response_ _appendContentAsciiString:@"\n<OPTION>"];
|
||||
#endif
|
||||
_optGroupLabel=YES;
|
||||
#endif
|
||||
_inOptGroup=YES;
|
||||
};
|
||||
//<OPTGROUP label="PortMaster 3">
|
||||
|
||||
if (_escapeHTML)
|
||||
_displayStringValue=[GSWResponse stringByEscapingHTMLString:_displayStringValue];
|
||||
NSDebugMLLog(@"gswdync",@"_displayStringValue=%@",_displayStringValue);
|
||||
#ifndef ENABLE_OPTGROUP
|
||||
if (_optGroupLabel)
|
||||
{
|
||||
_displayStringValue=[NSString stringWithFormat:@"%@ --",_displayStringValue];
|
||||
};
|
||||
#endif
|
||||
[response_ appendContentHTMLString:_displayStringValue];
|
||||
};
|
||||
if (_valueValue)
|
||||
{
|
||||
//NSDebugMLLog0(@"gswdync",@"Adding /OPTION");
|
||||
// K2- No /OPTION TAG
|
||||
//[response_ _appendContentAsciiString:@"</OPTION>"];
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDebugMLLog0(@"gswdync",@"Adding > or </OPTION>");
|
||||
#ifdef ENABLE_OPTGROUP
|
||||
[response_ _appendContentAsciiString:@"\">"];
|
||||
#else
|
||||
if (_optGroupLabel)
|
||||
{
|
||||
//[response_ _appendContentAsciiString:@"</OPTION>"];
|
||||
_optGroupLabel=NO;
|
||||
};
|
||||
#endif
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_inOptGroup)
|
||||
{
|
||||
#ifdef ENABLE_OPTGROUP
|
||||
NSDebugMLLog0(@"gswdync",@"Adding /OPTGROUP");
|
||||
[response_ _appendContentAsciiString:@"\n</OPTGROUP>"];
|
||||
#endif
|
||||
_inOptGroup=NO;
|
||||
};
|
||||
[response_ _appendContentAsciiString:@"</SELECT>"];
|
||||
LOGObjectFnStopC("GSWBrowser");
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
-(void)takeValuesFromRequest:(GSWRequest*)request_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
//OK
|
||||
LOGObjectFnStartC("GSWPopUpButton");
|
||||
[self _slowTakeValuesFromRequest:request_
|
||||
inContext:context_];
|
||||
LOGObjectFnStopC("GSWPopUpButton");
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)_slowTakeValuesFromRequest:(GSWRequest*)request_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
//OK
|
||||
BOOL _disabled=NO;
|
||||
BOOL _wasFormSubmitted=NO;
|
||||
LOGObjectFnStartC("GSWPopUpButton");
|
||||
[self resetAutoValue];
|
||||
_disabled=[self disabledInContext:context_];
|
||||
if (!_disabled)
|
||||
{
|
||||
_wasFormSubmitted=[context_ _wasFormSubmitted];
|
||||
if (_wasFormSubmitted)
|
||||
{
|
||||
BOOL _isMultiple=NO;
|
||||
NSArray* _foundValues=nil;
|
||||
NSMutableArray* _mutableFoundValues=[NSMutableArray array];
|
||||
GSWComponent* _component=nil;
|
||||
NSArray* _listValue=nil;
|
||||
id _valueValue=nil;
|
||||
id _itemValue=nil;
|
||||
NSString* _name=nil;
|
||||
NSArray* _formValues=nil;
|
||||
id _formValue=nil;
|
||||
BOOL _found=NO;
|
||||
int i=0;
|
||||
_component=[context_ component];
|
||||
_name=[self nameInContext:context_];
|
||||
NSDebugMLLog(@"gswdync",@"_name=%@",_name);
|
||||
if (multiple)
|
||||
{
|
||||
id _multipleValue=[multiple valueInComponent:_component];
|
||||
_isMultiple=boolValueFor(_multipleValue);
|
||||
};
|
||||
_formValues=[request_ formValuesForKey:_name];
|
||||
NSDebugMLLog(@"gswdync",@"_formValues=%@",_formValues);
|
||||
if (_formValues && [_formValues count])
|
||||
{
|
||||
BOOL _isEqual=NO;
|
||||
_formValue=[_formValues objectAtIndex:0];
|
||||
NSDebugMLLog(@"gswdync",@"_formValue=%@",_formValue);
|
||||
_listValue=[list valueInComponent:_component];
|
||||
NSAssert3(!_listValue || [_listValue respondsToSelector:@selector(count)],
|
||||
@"The list (%@) (%@ of class:%@) doesn't respond to 'count'",
|
||||
list,
|
||||
_listValue,
|
||||
[_listValue class]);
|
||||
for(i=0;(!_found || _isMultiple) && i<[_listValue count];i++)
|
||||
{
|
||||
_itemValue=[_listValue objectAtIndex:i];
|
||||
NSDebugMLLog(@"gswdync",@"_itemValue=%@",_itemValue);
|
||||
NSDebugMLLog(@"gswdync",@"item=%@",item);
|
||||
if (item)
|
||||
[item setValue:_itemValue
|
||||
inComponent:_component];
|
||||
NSDebugMLLog(@"gswdync",@"value=%@",value);
|
||||
_valueValue=[self valueInContext:context_];
|
||||
NSDebugMLLog(@"gswdync",@"_valueValue=%@ [class=%@] _formValue=%@ [class=%@]",
|
||||
_valueValue,[_valueValue class],
|
||||
_formValue,[_formValue class]);
|
||||
_isEqual=SBIsValueIsIn(_valueValue,_formValue);
|
||||
if (_isEqual)
|
||||
{
|
||||
if(autoValue == NO)
|
||||
_itemValue = _valueValue;
|
||||
[_mutableFoundValues addObject:_itemValue];
|
||||
_found=YES;
|
||||
};
|
||||
};
|
||||
};
|
||||
_foundValues=[NSArray arrayWithArray:_mutableFoundValues];
|
||||
NSDebugMLLog(@"gswdync",@"_found=%s",(_found ? "YES" : "NO"));
|
||||
if (selections)
|
||||
{
|
||||
#if !GSWEB_STRICT
|
||||
NS_DURING
|
||||
{
|
||||
[selections setValue:_foundValues
|
||||
inComponent:_component];
|
||||
};
|
||||
NS_HANDLER
|
||||
{
|
||||
[self handleValidationException:localException
|
||||
inContext:context_];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
#else
|
||||
[selections setValue:_foundValues
|
||||
inComponent:_component];
|
||||
#endif
|
||||
};
|
||||
#if !GSWEB_STRICT
|
||||
if (selectionValues)
|
||||
{
|
||||
NS_DURING
|
||||
{
|
||||
[selectionValues setValue:_foundValues
|
||||
inComponent:_component];
|
||||
};
|
||||
NS_HANDLER
|
||||
{
|
||||
[self handleValidationException:localException
|
||||
inContext:context_];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
};
|
||||
#endif
|
||||
};
|
||||
};
|
||||
LOGObjectFnStopC("GSWPopUpButton");
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)_fastTakeValuesFromRequest:(GSWRequest*)request_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
};
|
||||
|
@ -95,7 +452,7 @@ static char rcsId[] = "$Id$";
|
|||
//====================================================================
|
||||
@implementation GSWBrowser (GSWBrowserB)
|
||||
-(void)appendGSWebObjectsAssociationsToResponse:(GSWResponse*)response_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
};
|
||||
|
@ -103,7 +460,7 @@ static char rcsId[] = "$Id$";
|
|||
//--------------------------------------------------------------------
|
||||
|
||||
-(void)appendValueToResponse:(GSWResponse*)response_
|
||||
inContext:(GSWContext*)context_
|
||||
inContext:(GSWContext*)context_
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
};
|
||||
|
@ -115,7 +472,7 @@ static char rcsId[] = "$Id$";
|
|||
//====================================================================
|
||||
@implementation GSWBrowser (GSWBrowserC)
|
||||
-(BOOL)appendStringAtRight:(id)_unkwnon
|
||||
withMapping:(char*)_mapping
|
||||
withMapping:(char*)_mapping
|
||||
{
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
return NO;
|
||||
|
|
|
@ -25,6 +25,45 @@ static char rcsId[] = "$Id$";
|
|||
|
||||
#include <gsweb/GSWeb.framework/GSWeb.h>
|
||||
|
||||
|
||||
//====================================================================
|
||||
@interface GSWBundleUnarchiverDelegate : NSObject
|
||||
{
|
||||
id _object;
|
||||
}
|
||||
- (id) unarchiver:(EOKeyValueUnarchiver*)unarchiver
|
||||
objectForReference:(NSString*)keyPath;
|
||||
- (id) initWithObject:(id)object;
|
||||
@end
|
||||
|
||||
//====================================================================
|
||||
@implementation GSWBundleUnarchiverDelegate
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
- (void) dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
- (id) unarchiver:(EOKeyValueUnarchiver*)unarchiver
|
||||
objectForReference:(NSString*)keyPath
|
||||
{
|
||||
return [_object valueForKeyPath:keyPath];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
- (id) initWithObject:(id)object
|
||||
{
|
||||
if ((self=[super init]))
|
||||
{
|
||||
_object=object;
|
||||
};
|
||||
return self;
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
//====================================================================
|
||||
@implementation GSWBundle
|
||||
|
||||
|
@ -268,7 +307,7 @@ static char rcsId[] = "$Id$";
|
|||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)initializeObject:(id)object_
|
||||
fromArchiveNamed:(NSString*)name_
|
||||
fromArchiveNamed:(NSString*)name_
|
||||
{
|
||||
//OK
|
||||
NSDictionary* _archive=nil;
|
||||
|
@ -278,53 +317,90 @@ static char rcsId[] = "$Id$";
|
|||
//call application _isDynamicLoadingEnabled
|
||||
//call -- isTerminating
|
||||
//call -- isCachingEnabled
|
||||
//call -- isPageRefreshOnBacktrackEnabled//0
|
||||
_archive=[self archiveNamed:name_];
|
||||
//Verify
|
||||
NSDebugMLLog(@"bundles",@"_archive:%@",_archive);
|
||||
if (_archive)
|
||||
[self initializeObject:object_
|
||||
fromArchive:_archive];
|
||||
[self initializeObject:object_
|
||||
fromArchive:_archive];
|
||||
LOGObjectFnStop();
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)initializeObject:(id)object_
|
||||
fromArchive:(NSDictionary*)archive_
|
||||
fromArchive:(NSDictionary*)archive_
|
||||
{
|
||||
LOGObjectFnStart();
|
||||
NSDebugMLLog(@"bundles",@"object_:%@",object_);
|
||||
NSDebugMLLog(@"bundles",@"archive_:%@",archive_);
|
||||
[self lock];
|
||||
NS_DURING
|
||||
{
|
||||
{
|
||||
#if !GSWEB_STRICT
|
||||
{
|
||||
NSDictionary* _userDictionary=[archive_ objectForKey:@"userDictionary"];
|
||||
NSDictionary* _userAssociations=[archive_ objectForKey:@"userAssociations"];
|
||||
NSDictionary* _defaultAssociations=[archive_ objectForKey:@"defaultAssociations"];
|
||||
NSDebugMLLog(@"bundles",@"_userDictionary:%@",_userDictionary);
|
||||
NSDebugMLLog(@"bundles",@"_userAssociations:%@",_userAssociations);
|
||||
NSDebugMLLog(@"bundles",@"_defaultAssociations:%@",_defaultAssociations);
|
||||
_userAssociations=[_userAssociations dictionaryByReplacingStringsWithAssociations];
|
||||
NSDebugMLLog(@"bundles",@"_userAssociations:%@",_userAssociations);
|
||||
_defaultAssociations=[_defaultAssociations dictionaryByReplacingStringsWithAssociations];
|
||||
NSDebugMLLog(@"bundles",@"_defaultAssociations:%@",_defaultAssociations);
|
||||
if (_userDictionary && [object_ respondsToSelector:@selector(setUserDictionary:)])
|
||||
[object_ setUserDictionary:_userDictionary];
|
||||
if (_userAssociations && [object_ respondsToSelector:@selector(setUserAssociations:)])
|
||||
[object_ setUserAssociations:_userAssociations];
|
||||
if (_defaultAssociations && [object_ respondsToSelector:@selector(setDefaultAssociations:)])
|
||||
[object_ setDefaultAssociations:_defaultAssociations];
|
||||
};
|
||||
{
|
||||
NSDictionary* _userDictionary=[archive_ objectForKey:@"userDictionary"];
|
||||
NSDictionary* _userAssociations=[archive_ objectForKey:@"userAssociations"];
|
||||
NSDictionary* _defaultAssociations=[archive_ objectForKey:@"defaultAssociations"];
|
||||
NSDebugMLLog(@"bundles",@"_userDictionary:%@",_userDictionary);
|
||||
NSDebugMLLog(@"bundles",@"_userAssociations:%@",_userAssociations);
|
||||
NSDebugMLLog(@"bundles",@"_defaultAssociations:%@",_defaultAssociations);
|
||||
_userAssociations=[_userAssociations dictionaryByReplacingStringsWithAssociations];
|
||||
NSDebugMLLog(@"bundles",@"_userAssociations:%@",_userAssociations);
|
||||
_defaultAssociations=[_defaultAssociations dictionaryByReplacingStringsWithAssociations];
|
||||
NSDebugMLLog(@"bundles",@"_defaultAssociations:%@",_defaultAssociations);
|
||||
if (_userDictionary && [object_ respondsToSelector:@selector(setUserDictionary:)])
|
||||
[object_ setUserDictionary:_userDictionary];
|
||||
if (_userAssociations && [object_ respondsToSelector:@selector(setUserAssociations:)])
|
||||
[object_ setUserAssociations:_userAssociations];
|
||||
if (_defaultAssociations && [object_ respondsToSelector:@selector(setDefaultAssociations:)])
|
||||
[object_ setDefaultAssociations:_defaultAssociations];
|
||||
};
|
||||
#endif
|
||||
LOGObjectFnNotImplemented(); //TODOFN
|
||||
}
|
||||
#if GDL2 // GDL2 implementation
|
||||
{
|
||||
EOKeyValueUnarchiver* unarchiver=nil;
|
||||
GSWBundleUnarchiverDelegate* bundleDelegate=nil;
|
||||
NSDictionary* variables=nil;
|
||||
NSEnumerator* variablesEnum=nil;
|
||||
id variableName=nil;
|
||||
NSDebugMLLog(@"bundles",@"archive_:%@",archive_);
|
||||
unarchiver=[[[EOKeyValueUnarchiver alloc] initWithDictionary:archive_]
|
||||
autorelease];
|
||||
NSDebugMLLog(@"bundles",@"unarchiver:%@",unarchiver);
|
||||
bundleDelegate=[[[GSWBundleUnarchiverDelegate alloc] initWithObject:object_]
|
||||
autorelease];
|
||||
NSDebugMLLog(@"bundles",@"bundleDelegate:%@",bundleDelegate);
|
||||
[unarchiver setDelegate:bundleDelegate];
|
||||
NSDebugMLLog(@"bundles",@"decodevar");
|
||||
variables=[unarchiver decodeObjectForKey:@"variables"];
|
||||
NSDebugMLLog(@"bundles",@"variables:%@",variables);
|
||||
[unarchiver finishInitializationOfObjects];
|
||||
[unarchiver awakeObjects];
|
||||
variablesEnum=[variables keyEnumerator];
|
||||
while ((variableName = [variablesEnum nextObject]))
|
||||
{
|
||||
id variableValue=[variables objectForKey:variableName];
|
||||
NSDebugMLLog(@"bundles",@"variableName:%@ variableValue:%@",variableName,variableValue);
|
||||
[object_ takeValue:variableValue
|
||||
forKey:variableName];
|
||||
};
|
||||
};
|
||||
#else
|
||||
LOGObjectFnNotImplemented();
|
||||
#endif
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
NSDebugMLLog(@"bundles",@"EXCEPTION:%@ (%@) [%s %d]",localException,[localException reason],__FILE__,__LINE__);
|
||||
//TODO
|
||||
[self unlock];
|
||||
[localException raise];
|
||||
};
|
||||
{
|
||||
NSDebugMLLog(@"bundles",@"EXCEPTION:%@ (%@) [%s %d]",
|
||||
localException,
|
||||
[localException reason],
|
||||
__FILE__,
|
||||
__LINE__);
|
||||
//TODO
|
||||
[self unlock];
|
||||
[localException raise];
|
||||
};
|
||||
NS_ENDHANDLER;
|
||||
[self unlock];
|
||||
LOGObjectFnStop();
|
||||
|
@ -478,26 +554,36 @@ static char rcsId[] = "$Id$";
|
|||
if (_absoluteDefinitionPath)
|
||||
{
|
||||
//TODO use encoding !
|
||||
NSDebugMLLog(@"bundles",@"_absoluteDefinitionPath=%@",_absoluteDefinitionPath);
|
||||
NSDebugMLLog(@"bundles",@"_absoluteDefinitionPath=%@",
|
||||
_absoluteDefinitionPath);
|
||||
_pageDefString=[NSString stringWithContentsOfFile:_absoluteDefinitionPath];
|
||||
};
|
||||
#ifndef NDEBUG
|
||||
NS_DURING
|
||||
#endif
|
||||
{
|
||||
_template=[GSWTemplateParser templateNamed:name_
|
||||
inFrameworkNamed:[self frameworkName]
|
||||
withHTMLString:_htmlString
|
||||
htmlPath:_absoluteTemplatePath
|
||||
declarationString:_pageDefString
|
||||
languages:languages_
|
||||
declarationPath:_absoluteDefinitionPath];
|
||||
NSDebugMLLog(@"bundles",@"GSWTemplateParser on template named %@",
|
||||
name_);
|
||||
_template=[GSWTemplateParserXML templateNamed:name_
|
||||
inFrameworkNamed:[self frameworkName]
|
||||
withParserClassName:nil
|
||||
withString:_htmlString
|
||||
encoding:encoding
|
||||
fromPath:_absoluteTemplatePath
|
||||
definitionsString:_pageDefString
|
||||
languages:languages_
|
||||
definitionPath:_absoluteDefinitionPath];
|
||||
}
|
||||
#ifndef NDEBUG
|
||||
NS_HANDLER
|
||||
{
|
||||
NSDebugMLLog(@"bundles",@"EXCEPTION:%@ (%@) [%s %d]",localException,[localException reason],__FILE__,__LINE__);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo0(localException,@"In template Parsing");
|
||||
NSDebugMLLog(@"bundles",@"EXCEPTION:%@ (%@) [%s %d]",
|
||||
localException,
|
||||
[localException reason],
|
||||
__FILE__,
|
||||
__LINE__);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo0(localException,
|
||||
@"In template Parsing");
|
||||
[localException raise];
|
||||
};
|
||||
NS_ENDHANDLER;
|
||||
|
|
|
@ -70,8 +70,11 @@ static char rcsId[] = "$Id$";
|
|||
LOGObjectFnStart();
|
||||
NSDebugMLLog(@"gswdync",@"ET=%@ id=%@",[self class],[context_ elementID]);
|
||||
_component=[context_ component];
|
||||
NSDebugMLLog(@"gswdync",@"_component=%@",_component);
|
||||
_childTemplate=[_component _childTemplate];
|
||||
NSDebugMLLog(@"gswdync",@"_childTemplate=%@",_childTemplate);
|
||||
_parent=[_component parent];
|
||||
NSDebugMLLog(@"gswdync",@"_parent=%@",_parent);
|
||||
[context_ _setCurrentComponent:_parent];
|
||||
_element=[_childTemplate invokeActionForRequest:request_
|
||||
inContext:context_];
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#define GSWEB_STRICT 0
|
||||
#define GSWEB_WONAMES 0
|
||||
|
||||
#define GSWEB_DEFAULT_HTML_PARSER_CLASS_NAME @"GSWTemplateParserXMLHTML"
|
||||
#define GSWOPTVALUE_ApplicationBaseURL @"/GSWeb"
|
||||
#define GSWOPTVALUE_AutoOpenInBrowser @"YES"
|
||||
#define GSWOPTVALUE_CGIAdaptorURL @"/cgi/GSWeb"
|
||||
|
|
|
@ -285,6 +285,7 @@ extern id filePath__Key;
|
|||
extern id pageSetVar__Prefix__Key;
|
||||
extern id pageSetVars__Key;
|
||||
extern id selectionValue__Key;
|
||||
extern id selectionValues__Key;
|
||||
extern id enabled__Key;
|
||||
extern id convertHTML__Key;
|
||||
extern id convertHTMLEntities__Key;
|
||||
|
@ -293,6 +294,7 @@ extern id filePath__Key;
|
|||
extern id imageMapString__Key;
|
||||
extern id imageMapRegions__Key;
|
||||
extern id handleValidationException__Key;
|
||||
extern id selectedValues__Key;
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -392,10 +392,12 @@ id filePath__Key = @"filePath";
|
|||
id pageSetVar__Prefix__Key=@"pageSetVar_";
|
||||
id pageSetVars__Key=@"pageSetVars";
|
||||
id selectionValue__Key=@"selectionValue";
|
||||
id selectionValues__Key=@"selectionValues";
|
||||
id enabled__Key=@"enabled";
|
||||
id convertHTML__Key=@"convertHTML";
|
||||
id convertHTMLEntities__Key=@"convertHTMLEntities";
|
||||
id imageMapString__Key = @"imageMapString";
|
||||
id imageMapRegions__Key = @"imageMapRegions";
|
||||
id handleValidationException__Key = @"handleValidationException";
|
||||
id selectedValues__Key = @"selectedValues";
|
||||
#endif
|
||||
|
|
|
@ -65,25 +65,25 @@
|
|||
Array of selection indexes
|
||||
|
||||
*/
|
||||
EODataSource *dataSource;
|
||||
NSMutableArray *allObjects;
|
||||
NSMutableArray *displayedObjects;
|
||||
NSMutableArray *selectedObjects;
|
||||
NSArray *selection;
|
||||
NSArray *sortOrdering;
|
||||
EOQualifier *qualifier;
|
||||
NSArray *localKeys;
|
||||
NSDictionary *insertedObjectDefaultValues;
|
||||
NSMutableArray *savedAllObjects;
|
||||
NSMutableDictionary *queryMatch;
|
||||
NSMutableDictionary *queryMin;
|
||||
NSMutableDictionary *queryMax;
|
||||
NSMutableDictionary *queryOperator;
|
||||
NSString *defaultStringMatchOperator;
|
||||
NSString *defaultStringMatchFormat;
|
||||
NSMutableDictionary *queryBindings;
|
||||
unsigned numberOfObjectsPerBatch;
|
||||
unsigned batchIndex;
|
||||
EODataSource* _dataSource;
|
||||
NSMutableArray* _allObjects;
|
||||
NSMutableArray* _displayedObjects;
|
||||
NSMutableArray* _selectedObjects;
|
||||
NSArray* _selection;
|
||||
NSArray* _sortOrdering;
|
||||
EOQualifier* _qualifier;
|
||||
NSArray* _localKeys;
|
||||
NSDictionary* _insertedObjectDefaultValues;
|
||||
NSMutableArray* _savedAllObjects;
|
||||
NSMutableDictionary* _queryMatch;
|
||||
NSMutableDictionary* _queryMin;
|
||||
NSMutableDictionary*_queryMax;
|
||||
NSMutableDictionary*_queryOperator;
|
||||
NSString* _defaultStringMatchOperator;
|
||||
NSString* _defaultStringMatchFormat;
|
||||
NSMutableDictionary*_queryBindings;
|
||||
unsigned _numberOfObjectsPerBatch;
|
||||
unsigned _batchIndex;
|
||||
struct {
|
||||
unsigned int selectFirstObject:1;
|
||||
unsigned int autoFetch:1;
|
||||
|
@ -91,7 +91,7 @@
|
|||
unsigned int queryMode:1;
|
||||
unsigned int fetchAll:1;
|
||||
unsigned int _reserved:27;
|
||||
} flags;
|
||||
} _flags;
|
||||
struct {
|
||||
unsigned int didChangeDataSource:1;
|
||||
unsigned int displayArrayForObjects:1;
|
||||
|
@ -110,7 +110,7 @@
|
|||
unsigned int shouldRedisplay:1;
|
||||
unsigned int shouldRefetchObjects:1;
|
||||
unsigned int _reserved:16;
|
||||
} delegateRespondsTo;
|
||||
} _delegateRespondsTo;
|
||||
};
|
||||
|
||||
- (NSArray *)allObjects;
|
||||
|
@ -140,8 +140,11 @@
|
|||
- (unsigned)indexOfFirstDisplayedObject;
|
||||
- (unsigned)indexOfLastDisplayedObject;
|
||||
- (id)init;
|
||||
-(void)awakeFromKeyValueUnarchiver:(EOKeyValueUnarchiver*)object_;
|
||||
- (NSMutableDictionary *)inputObjectForQualifier;
|
||||
- (BOOL)inQueryMode;
|
||||
-(void)editingContext:(id)editingContext_
|
||||
presentErrorMessage:(id)msg;
|
||||
- (id)insert;
|
||||
- (NSDictionary *)insertedObjectDefaultValues;
|
||||
- (void)insertObject:object_
|
||||
|
@ -192,9 +195,9 @@
|
|||
- (void)setQualifier:(EOQualifier *)qualifier_;
|
||||
- (BOOL)setSelectionIndexes:(NSArray *)selection;
|
||||
- (void)setSelectsFirstObjectAfterFetch:(BOOL)flag;
|
||||
- (void)setSortOrdering:(NSArray *)orderings;
|
||||
- (void)setSortOrderings:(NSArray *)orderings;
|
||||
- (void)setValidatesChangesImmediately:(BOOL)flag;
|
||||
- (NSArray *)sortOrdering;
|
||||
- (NSArray *)sortOrderings;
|
||||
- (void)updateDisplayedObjects;
|
||||
- (BOOL)validatesChangesImmediately;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -254,9 +254,10 @@ static char rcsId[] = "$Id$";
|
|||
-(NSArray*)browserLanguages
|
||||
{
|
||||
//OK
|
||||
LOGObjectFnStart();
|
||||
if (!browserLanguages)
|
||||
{
|
||||
NSArray* _browserLanguages=nil;
|
||||
NSMutableArray* _browserLanguages=nil;
|
||||
NSString* header=[self headerForKey:GSWHTTPHeader_AcceptLanguage];
|
||||
NSDebugMLLog(@"requests",@"lang header:%@",header);
|
||||
if (header)
|
||||
|
@ -289,7 +290,25 @@ static char rcsId[] = "$Id$";
|
|||
else
|
||||
_browserLanguages=[[NSArray new]autorelease];
|
||||
*/
|
||||
_browserLanguages=[GSWResourceManager GSLanguagesFromISOLanguages:_languages];
|
||||
_browserLanguages=(NSMutableArray*)[GSWResourceManager GSLanguagesFromISOLanguages:_languages];
|
||||
NSDebugMLLog(@"requests",@"browserLanguages:%@",browserLanguages);
|
||||
if (_browserLanguages)
|
||||
{
|
||||
//Remove Duplicates
|
||||
int i=0;
|
||||
_browserLanguages=[_browserLanguages mutableCopy];
|
||||
for(i=0;i<[_browserLanguages count];i++)
|
||||
{
|
||||
int j=0;
|
||||
NSString* language=[_browserLanguages objectAtIndex:i];
|
||||
for(j=[_browserLanguages count]-1;j>i;j--)
|
||||
{
|
||||
NSString* language2=[_browserLanguages objectAtIndex:j];
|
||||
if ([language2 isEqual:language])
|
||||
[_browserLanguages removeObjectAtIndex:j];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -299,11 +318,12 @@ static char rcsId[] = "$Id$";
|
|||
if (!_browserLanguages)
|
||||
{
|
||||
LOGError0(@"No known languages");
|
||||
_browserLanguages=[NSArray array];
|
||||
_browserLanguages=(NSMutableArray*)[NSArray array];
|
||||
};
|
||||
ASSIGN(browserLanguages,_browserLanguages);
|
||||
NSDebugMLLog(@"requests",@"browserLanguages:%@",browserLanguages);
|
||||
};
|
||||
// NSDebugMLLog(@"requests",@"browserLanguages:%@",browserLanguages);
|
||||
LOGObjectFnStop();
|
||||
return browserLanguages;
|
||||
};
|
||||
|
||||
|
|
|
@ -26,69 +26,71 @@
|
|||
#ifndef _GSWTemplateParser_h__
|
||||
#define _GSWTemplateParser_h__
|
||||
|
||||
#include <gsantlr/ANTLRCommon.h>
|
||||
#include <gsantlr/ANTLRTextStreams.h>
|
||||
#include "GSWHTMLTokenTypes.h"
|
||||
#include "GSWPageDefLexer.h"
|
||||
#include "GSWPageDefParser.h"
|
||||
#include "GSWPageDefParserExt.h"
|
||||
#include "GSWHTMLAttrLexer.h"
|
||||
#include "GSWHTMLAttrParser.h"
|
||||
#include "GSWHTMLAttrParserExt.h"
|
||||
|
||||
|
||||
//====================================================================
|
||||
@interface GSWTemplateParser : NSObject
|
||||
{
|
||||
NSString* _templateName;
|
||||
NSString* _frameworkName;
|
||||
NSString* _string;
|
||||
NSStringEncoding _stringEncoding;
|
||||
NSString* _stringPath;
|
||||
NSString* _definitionsString;
|
||||
NSArray* _languages;
|
||||
NSString* _definitionsPath;
|
||||
GSWElement* _template;
|
||||
NSDictionary* _definitions;
|
||||
}
|
||||
|
||||
+(GSWElement*)templateNamed:(NSString*)name_
|
||||
inFrameworkNamed:(NSString*)frameworkName_
|
||||
withHTMLString:(NSString*)HTMLString
|
||||
htmlPath:(NSString*)HTMLPath
|
||||
declarationString:(NSString*)pageDefString
|
||||
languages:(NSArray*)languages_
|
||||
declarationPath:(NSString*)declarationPath_;
|
||||
+(BOOL)parseTag:(ANTLRDefAST)_AST
|
||||
// withTagStream:(ANTLRTextInputStreamString*)_tagStream
|
||||
// withTagParser:(GSWHTMLAttrParser*)_tagParser
|
||||
withTagsNames:(NSMutableDictionary*)tagsNames
|
||||
withTagsAttrs:(NSMutableDictionary*)tagsAttrs;
|
||||
+(NSString*)getTagNameFor:(ANTLRDefAST)_AST
|
||||
// withTagStream:(ANTLRTextInputStreamString*)_tagStream
|
||||
// withTagParser:(GSWHTMLAttrParser*)_tagParser
|
||||
withTagsNames:(NSMutableDictionary*)tagsNames
|
||||
withTagsAttrs:(NSMutableDictionary*)tagsAttrs;
|
||||
+(NSDictionary*)getTagAttrsFor:(ANTLRDefAST)_AST
|
||||
// withTagStream:(ANTLRTextInputStreamString*)_tagStream
|
||||
// withTagParser:(GSWHTMLAttrParser*)_tagParser
|
||||
withTagsNames:(NSMutableDictionary*)tagsNames
|
||||
withTagsAttrs:(NSMutableDictionary*)tagsAttrs;
|
||||
+(GSWElement*)createElementsStartingWithAST:(ANTLRDefAST*)_AST
|
||||
stopOnTagNamed:(NSString*)_stopTagName
|
||||
withDefinitions:(NSDictionary*)pageDefElements
|
||||
withLanguages:(NSArray*)languages_
|
||||
// withTagStream:(ANTLRTextInputStreamString*)_tagStream
|
||||
// withTagParser:(GSWHTMLAttrParser*)_tagParser
|
||||
withTagsNames:(NSMutableDictionary*)tagsNames
|
||||
withTagsAttr:(NSMutableDictionary*)tagsAttrs
|
||||
templateNamed:(NSString*)templateName_;
|
||||
inFrameworkNamed:(NSString*)frameworkName_
|
||||
withParserClassName:(NSString*)parserClassName
|
||||
withString:(NSString*)HTMLString
|
||||
encoding:(NSStringEncoding)encoding
|
||||
fromPath:(NSString*)HTMLPath
|
||||
definitionsString:(NSString*)pageDefString
|
||||
languages:(NSArray*)languages_
|
||||
definitionPath:(NSString*)definitionPath_;
|
||||
+(GSWElement*)templateNamed:(NSString*)name_
|
||||
inFrameworkNamed:(NSString*)frameworkName_
|
||||
withParserClass:(Class)parserClass
|
||||
withString:(NSString*)HTMLString
|
||||
encoding:(NSStringEncoding)encoding
|
||||
fromPath:(NSString*)HTMLPath
|
||||
definitionsString:(NSString*)pageDefString
|
||||
languages:(NSArray*)languages_
|
||||
definitionPath:(NSString*)definitionPath_;
|
||||
+(void)setDefaultParserClassName:(NSString*)parserClassName;
|
||||
+(NSString*)defaultParserClassName;
|
||||
+(Class)defaultParserClass;
|
||||
-(id)initWithTemplateName:(NSString*)name_
|
||||
inFrameworkName:(NSString*)frameworkName_
|
||||
withString:(NSString*)HTMLString
|
||||
encoding:(NSStringEncoding)encoding_
|
||||
fromPath:(NSString*)HTMLPath
|
||||
withDefinitionsString:(NSString*)pageDefString
|
||||
fromPath:(NSString*)definitionPath_
|
||||
forLanguages:(NSArray*)languages_;
|
||||
-(void)dealloc;
|
||||
-(NSString*)logPrefix;
|
||||
-(GSWElement*)template;
|
||||
-(NSArray*)templateElements;
|
||||
-(NSDictionary*)definitions;
|
||||
|
||||
-(NSDictionary*)parseDefinitionsString:(NSString*)localDefinitionstring_
|
||||
named:(NSString*)localDefinitionName_
|
||||
inFrameworkNamed:(NSString*)localFrameworkName_
|
||||
fromPath:(NSString*)localDefinitionPath_;
|
||||
|
||||
-(NSDictionary*)parseDefinitionInclude:(NSString*)includeName_
|
||||
fromFrameworkNamed:(NSString*)fromFrameworkName_
|
||||
definitionPath:(NSString*)localDefinitionPath_;
|
||||
|
||||
-(NSDictionary*)processIncludes:(NSArray*)definitionsIncludes_
|
||||
named:(NSString*)localDefinitionsName_
|
||||
inFrameworkNamed:(NSString*)localFrameworkName_
|
||||
definitionPath:(NSString*)localDefinitionPath_;
|
||||
|
||||
+(BOOL)parseDeclarationInclude:(NSString*)includeName_
|
||||
fromFrameworkNamed:(NSString*)fromFrameworkName_
|
||||
declarationPath:(NSString*)declarationPath_
|
||||
languages:(NSArray*)languages_
|
||||
into:(NSMutableDictionary*)pageDefElements_;
|
||||
+(BOOL)parseDeclarationString:(NSString*)pageDefString
|
||||
languages:(NSArray*)languages_
|
||||
named:(NSString*)name_
|
||||
inFrameworkNamed:(NSString*)frameworkName_
|
||||
declarationPath:(NSString*)declarationPath_
|
||||
into:(NSMutableDictionary*)pageDefElements_;
|
||||
+(BOOL)processIncludes:(NSArray*)pageDefIncludes_
|
||||
languages:(NSArray*)languages_
|
||||
named:(NSString*)name_
|
||||
inFrameworkNamed:(NSString*)frameworkName_
|
||||
declarationPath:(NSString*)declarationPath_
|
||||
into:(NSMutableDictionary*)pageDefElements_;
|
||||
@end
|
||||
|
||||
#endif //_GSWTemplateParser_h__
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
57
GSWeb.framework/GSWTemplateParserANTLR.h
Normal file
57
GSWeb.framework/GSWTemplateParserANTLR.h
Normal file
|
@ -0,0 +1,57 @@
|
|||
/* GSWTemplateParserANTLR.h - GSWeb: Class GSWTemplateParserANTLR
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Manuel Guesdon <mguesdon@sbuilders.com>
|
||||
Date: Mar 1999
|
||||
|
||||
This file is part of the GNUstep Web Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
// $Id$
|
||||
|
||||
#ifndef _GSWTemplateParserANTLR_h__
|
||||
#define _GSWTemplateParserANTLR_h__
|
||||
|
||||
#include <gsantlr/ANTLRCommon.h>
|
||||
#include <gsantlr/ANTLRTextStreams.h>
|
||||
#include "GSWTemplateParser.h"
|
||||
#include "GSWHTMLTokenTypes.h"
|
||||
#include "GSWPageDefLexer.h"
|
||||
#include "GSWPageDefParser.h"
|
||||
#include "GSWPageDefParserExt.h"
|
||||
#include "GSWHTMLAttrLexer.h"
|
||||
#include "GSWHTMLAttrParser.h"
|
||||
#include "GSWHTMLAttrParserExt.h"
|
||||
|
||||
|
||||
//====================================================================
|
||||
@interface GSWTemplateParserANTLR : GSWTemplateParser
|
||||
{
|
||||
NSMutableDictionary* _tagsNames;
|
||||
NSMutableDictionary* _tagsAttrs;
|
||||
};
|
||||
-(void)dealloc;
|
||||
-(NSArray*)templateElements;
|
||||
-(NSArray*)createElementsStartingWithAST:(ANTLRDefAST*)_AST
|
||||
stopOnTagNamed:(NSString*)_stopTagName;
|
||||
|
||||
-(BOOL)parseTag:(ANTLRDefAST)_AST;
|
||||
-(NSString*)getTagNameFor:(ANTLRDefAST)_AST;
|
||||
-(NSDictionary*)getTagAttrsFor:(ANTLRDefAST)_AST;
|
||||
@end
|
||||
|
||||
#endif //_GSWTemplateParserANTLR_h__
|
498
GSWeb.framework/GSWTemplateParserANTLR.m
Normal file
498
GSWeb.framework/GSWTemplateParserANTLR.m
Normal file
|
@ -0,0 +1,498 @@
|
|||
/* GSWTemplateParserANTLR.m - GSWeb: Class GSWTemplateParserANTLR
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Manuel Guesdon <mguesdon@sbuilders.com>
|
||||
Date: Mar 1999
|
||||
|
||||
This file is part of the GNUstep Web Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
static char rcsId[] = "$Id$";
|
||||
|
||||
#include <gsweb/GSWeb.framework/GSWeb.h>
|
||||
|
||||
//====================================================================
|
||||
@implementation GSWTemplateParserANTLR
|
||||
-(void)dealloc
|
||||
{
|
||||
DESTROY(_tagsNames);
|
||||
DESTROY(_tagsAttrs);
|
||||
[super dealloc];
|
||||
};
|
||||
-(NSArray*)templateElements
|
||||
{
|
||||
NSArray* elements=nil;
|
||||
id<NSObject,ANTLRAST> htmlAST=nil;
|
||||
NSAutoreleasePool* arpParse=nil;
|
||||
ANTLRTextInputStreamString* htmlStream=nil;
|
||||
GSWHTMLLexer* htmlLexer=nil;
|
||||
ANTLRTokenBuffer* htmlTokenBuffer=nil;
|
||||
GSWHTMLParser* htmlParser=nil;
|
||||
LOGObjectFnStart();
|
||||
NSDebugMLLog(@"low",@"template named:%@ frameworkName:%@ pageDefString=%@",
|
||||
_templateName,
|
||||
_frameworkName,
|
||||
_definitionsString);
|
||||
//TODO remove
|
||||
/*
|
||||
[ANTLRCharBuffer setTraceFlag_LA:YES];
|
||||
[ANTLRCharScanner setTraceFlag_LA:YES];
|
||||
[ANTLRLLkParser setTraceFlag_LA:YES];
|
||||
[ANTLRTokenBuffer setTraceFlag_LA:YES];
|
||||
*/
|
||||
htmlStream=[[ANTLRTextInputStreamString newWithString:_string]
|
||||
autorelease];
|
||||
htmlLexer=[[[GSWHTMLLexer alloc]initWithTextStream:htmlStream]
|
||||
autorelease];
|
||||
htmlTokenBuffer=[ANTLRTokenBuffer tokenBufferWithTokenizer:htmlLexer];
|
||||
htmlParser=[[[GSWHTMLParser alloc] initWithTokenBuffer:htmlTokenBuffer]
|
||||
autorelease];
|
||||
NSDebugMLLog(@"low",@"template named:%@ HTMLString=%@",
|
||||
_templateName,
|
||||
_string);
|
||||
arpParse=[NSAutoreleasePool new];
|
||||
NS_DURING
|
||||
{
|
||||
[htmlParser document];
|
||||
if ([htmlParser isError])
|
||||
{
|
||||
LOGError(@"Parser Errors : %@",[htmlParser errors]);
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"GSWTemlateParser: Errors in HTML parsing template named %@: %@\nAST:\n%@",
|
||||
_templateName,
|
||||
[htmlParser errors],
|
||||
[htmlParser AST]);
|
||||
};
|
||||
htmlAST=[htmlParser AST];
|
||||
NSDebugMLLog0(@"low",@"HTML Parse OK!");
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
LOGError(@"template named:%@ HTML Parse failed!",_templateName);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo(localException,@"In [htmlParser document]... template named:%@ HTML Parse failed!",_templateName);
|
||||
[localException retain];
|
||||
DESTROY(arpParse);
|
||||
[localException autorelease];
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
NSDebugMLLog0(@"low",@"arpParse infos:\n");
|
||||
#ifndef NDEBUG
|
||||
if ([NSThread currentThread])
|
||||
{
|
||||
NSDebugMLLog(@"low",@"thread current_pool=%@",
|
||||
[NSThread currentThread]->_autorelease_vars.current_pool);
|
||||
NSDebugMLLog(@"low",@"thread current_pool _parentAutoreleasePool=%@",
|
||||
[[NSThread currentThread]->_autorelease_vars.current_pool _parentAutoreleasePool]);
|
||||
};
|
||||
#endif
|
||||
NSDebugMLLog0(@"low",@"DESTROY(arpParse)\n");
|
||||
[htmlAST retain];
|
||||
DESTROY(arpParse);
|
||||
arpParse=[NSAutoreleasePool new];
|
||||
[htmlAST autorelease];
|
||||
NSDebugMLLog0(@"low",@"DESTROYED(arpParse)\n");
|
||||
if (htmlAST)
|
||||
{
|
||||
_tagsNames=[[NSMutableDictionary dictionary] retain];
|
||||
_tagsAttrs=[[NSMutableDictionary dictionary] retain];
|
||||
NS_DURING
|
||||
{
|
||||
elements=[self createElementsStartingWithAST:&htmlAST
|
||||
stopOnTagNamed:nil];
|
||||
NSDebugMLLog(@"low",@"template named:%@ _template=%@",
|
||||
_templateName,
|
||||
elements);
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
LOGSeriousError(@"template named:%@ createElements failed!",
|
||||
_templateName);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo0(localException,
|
||||
@"In createElementsStartingWithAST...");
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
};
|
||||
NSDebugMLLog0(@"low",@"ARP infos:\n");
|
||||
#ifndef NDEBUG
|
||||
if ([NSThread currentThread])
|
||||
{
|
||||
NSDebugMLLog(@"low",@"thread current_pool=%@",
|
||||
[NSThread currentThread]->_autorelease_vars.current_pool);
|
||||
NSDebugMLLog(@"low",@"thread current_pool _parentAutoreleasePool=%@",
|
||||
[[NSThread currentThread]->_autorelease_vars.current_pool _parentAutoreleasePool]);
|
||||
};
|
||||
#endif
|
||||
[elements retain];
|
||||
NSDebugMLLog0(@"low",@"DESTROY(arp)\n");
|
||||
DESTROY(arpParse);
|
||||
NSDebugMLLog0(@"low",@"DESTROYED(arp)\n");
|
||||
[elements autorelease];
|
||||
NSDebugMLLog0(@"low",@"Display Template\n");
|
||||
NSDebugMLLog(@"low",@"template named:%@ elements=%@",
|
||||
_templateName,
|
||||
elements);
|
||||
LOGClassFnStop();
|
||||
return elements;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(BOOL)parseTag:(ANTLRDefAST)_AST
|
||||
{
|
||||
BOOL htmlAttrParseOK=YES;
|
||||
NSString* tagName=[_tagsNames objectForKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
LOGClassFnStart();
|
||||
if (!tagName
|
||||
&& ([_AST tokenType]==GSWHTMLTokenType_OPENTAG
|
||||
|| [_AST tokenType]==GSWHTMLTokenType_CLOSETAG))
|
||||
{
|
||||
NSAutoreleasePool* arpParse=nil;
|
||||
ANTLRTextInputStreamString* _tagStream=[[[ANTLRTextInputStreamString alloc]
|
||||
initWithString:[_AST text]]
|
||||
autorelease];
|
||||
GSWHTMLAttrLexer* htmlAttrLexer=[[[GSWHTMLAttrLexer alloc]
|
||||
initWithTextStream:_tagStream]
|
||||
autorelease];
|
||||
ANTLRTokenBuffer* htmlAttrTokenBuffer=[ANTLRTokenBuffer tokenBufferWithTokenizer:htmlAttrLexer];
|
||||
GSWHTMLAttrParser* _tagParser=[[[GSWHTMLAttrParser alloc] initWithTokenBuffer:htmlAttrTokenBuffer]
|
||||
autorelease];
|
||||
NSString* tagName=nil;
|
||||
NSDictionary* tagAttrs=nil;
|
||||
NSDebugMLLog(@"low",@"PARSE:[%@]",[_AST text]);
|
||||
NSDebugMLLog(@"low",@"stream:[%@]",_tagStream);
|
||||
htmlAttrParseOK=NO;
|
||||
arpParse=[NSAutoreleasePool new];
|
||||
NS_DURING
|
||||
{
|
||||
[_tagParser tag];
|
||||
if ([_tagParser isError])
|
||||
{
|
||||
LOGError(@"Parser Errors : %@",[_tagParser errors]);
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"GSWTemlateParser: Errors in HTML Tag parsing: %@",
|
||||
[_tagParser errors]);
|
||||
};
|
||||
tagName=[_tagParser tagName];
|
||||
tagAttrs=[_tagParser attributes];
|
||||
NSDebugMLLog(@"low",@"tagName=%@ tagAttrs=%@",
|
||||
tagName,
|
||||
tagAttrs);
|
||||
htmlAttrParseOK=YES;
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
htmlAttrParseOK=NO;
|
||||
LOGError(@"PARSE PB:[%@]",[_AST text]);//TODO
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo0(localException,
|
||||
@"In [_tagParser tag]...");
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
NSDebugMLLog0(@"low",@"arpParse infos:\n");
|
||||
#ifndef NDEBUG
|
||||
if ([NSThread currentThread])
|
||||
{
|
||||
NSDebugMLLog(@"low",@"thread current_pool=%@",
|
||||
[NSThread currentThread]->_autorelease_vars.current_pool);
|
||||
NSDebugMLLog(@"low",@"thread current_pool _parentAutoreleasePool=%@",
|
||||
[[NSThread currentThread]->_autorelease_vars.current_pool _parentAutoreleasePool]);
|
||||
};
|
||||
#endif
|
||||
NSDebugMLLog0(@"low",@"DESTROY(arpParse)\n");
|
||||
DESTROY(arpParse);
|
||||
NSDebugMLLog0(@"low",@"DESTROYED(arpParse)\n");
|
||||
|
||||
NSDebugMLLog(@"low",@"END PARSE:[%@]",[_AST text]);
|
||||
|
||||
if (htmlAttrParseOK && tagName)
|
||||
{
|
||||
NSDebugMLLog(@"low",@"tagName:[%@]",tagName);
|
||||
if ([tagName hasPrefix:@"\""] && [tagName hasSuffix:@"\""])
|
||||
tagName=[[tagName stringWithoutPrefix:@"\""]stringWithoutSuffix:@"\""];
|
||||
NSDebugMLLog(@"low",@"Add tagName:[%@]",
|
||||
tagName);
|
||||
[_tagsNames setObject:tagName
|
||||
forKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
NSDebugMLLog(@"low",@"Verify tagName=%@",
|
||||
[_tagsNames objectForKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]); //TODO bad hack
|
||||
NSDebugMLLog(@"low",@"Add tagsAttrs:[%@]",
|
||||
tagAttrs);
|
||||
if (tagAttrs)
|
||||
{
|
||||
[_tagsAttrs setObject:tagAttrs
|
||||
forKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
NSDebugMLLog(@"low",@"Verify tagAttrs=%@",
|
||||
[_tagsAttrs objectForKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]); //TODO bad hack
|
||||
};
|
||||
};
|
||||
};
|
||||
LOGClassFnStop();
|
||||
return htmlAttrParseOK;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSString*)getTagNameFor:(ANTLRDefAST)_AST
|
||||
{
|
||||
NSString* tagName=[_tagsNames objectForKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
LOGClassFnStart();
|
||||
NSDebugMLLog(@"low",@"[%@]",[_AST text]);
|
||||
if (!tagName)
|
||||
{
|
||||
BOOL htmlAttrParseOK=[self parseTag:_AST];
|
||||
if (htmlAttrParseOK)
|
||||
tagName=[_tagsNames objectForKey:[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
};
|
||||
NSDebugMLLog(@"low",@"tagName:[%@]",tagName);
|
||||
LOGClassFnStop();
|
||||
return tagName;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSDictionary*)getTagAttrsFor:(ANTLRDefAST)_AST
|
||||
{
|
||||
NSDictionary* tagAttrs=[_tagsAttrs objectForKey:
|
||||
[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
LOGClassFnStart();
|
||||
NSDebugMLLog(@"low",@"[%@]",[_AST text]);
|
||||
if (!tagAttrs)
|
||||
{
|
||||
BOOL htmlAttrParseOK=[self parseTag:_AST];
|
||||
if (htmlAttrParseOK)
|
||||
tagAttrs=[_tagsAttrs objectForKey:
|
||||
[NSNumber numberWithUnsignedLong:(unsigned long)_AST]]; //TODO bad hack
|
||||
};
|
||||
NSDebugMLLog(@"low",@"tagAttrs:[%@]",tagAttrs);
|
||||
LOGClassFnStop();
|
||||
return tagAttrs;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSArray*)createElementsStartingWithAST:(ANTLRDefAST*)_AST
|
||||
stopOnTagNamed:(NSString*)_stopTagName
|
||||
{
|
||||
NSMutableArray* _elements=[NSMutableArray array];
|
||||
ANTLRDefAST _currentAST=*_AST;
|
||||
BOOL end=NO;
|
||||
BOOL inHTMLBareString=NO;
|
||||
NSMutableString* htmlBareString=nil;
|
||||
LOGClassFnStart();
|
||||
NSDebugMLLog(@"low",@"_stopTagName:[%@]",_stopTagName);
|
||||
while(_currentAST && !end)
|
||||
{
|
||||
GSWElement* element=nil;
|
||||
NSString* tagName=nil;
|
||||
NSDictionary* tagAttrs=nil;
|
||||
BOOL stopBareString=NO;
|
||||
NSDebugMLLog(@"low",@"[_currentAST: text=[%@] Type=%d",
|
||||
[_currentAST text],
|
||||
[_currentAST tokenType]);
|
||||
NSDebugMLLog(@"low",@"end=%s inHTMLBareString=%s stopBareString=%s",
|
||||
end ? "YES" : "NO",
|
||||
inHTMLBareString ? "YES" : "NO",
|
||||
stopBareString ? "YES" : "NO");
|
||||
|
||||
if ([_currentAST tokenType]==GSWHTMLTokenType_OPENTAG
|
||||
|| [_currentAST tokenType]==GSWHTMLTokenType_CLOSETAG)
|
||||
{
|
||||
tagName=[self getTagNameFor:_currentAST];
|
||||
NSDebugMLLog(@"low",@"Result tagName:[%@]",tagName);
|
||||
if (!tagName)
|
||||
{
|
||||
LOGError0(@"");//TODO
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDebugMLLog(@"low",@"[_currentAST tokenType]=%d",(int)[_currentAST tokenType]);
|
||||
if ([_currentAST tokenType]==GSWHTMLTokenType_OPENTAG)
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"Found Open Tag");
|
||||
tagAttrs=[self getTagAttrsFor:_currentAST];
|
||||
NSDebugMLLog(@"low",@"tagAttrs=%@",tagAttrs);
|
||||
if ([tagName caseInsensitiveCompare:@"gsweb"]==NSOrderedSame
|
||||
|| [tagName caseInsensitiveCompare:@"webobject"]==NSOrderedSame)
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"Found GSWeb Tag");
|
||||
NSDebugMLLog(@"low",@"tagAttrs=%@",
|
||||
tagAttrs);
|
||||
if (inHTMLBareString)
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"==>Stop BareString");
|
||||
stopBareString=YES;
|
||||
}
|
||||
else
|
||||
{
|
||||
ANTLRDefAST nextAST=[_currentAST nextSibling];
|
||||
NSString* name=[tagAttrs objectForKey:@"name"];
|
||||
NSDebugMLLog0(@"low",@"Process GSWeb Tag");
|
||||
NSDebugMLLog(@"low",@"GSWeb Tag: name:[%@]",
|
||||
name);
|
||||
if (!name)
|
||||
{
|
||||
LOGError(@"No name for Element:%@",
|
||||
[_currentAST text]);//TODO
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"GSWTemlateParser: no name for GNUstepWeb tag in template named %@",
|
||||
_templateName);
|
||||
}
|
||||
else
|
||||
{
|
||||
GSWPageDefElement* pageDefElement=[_definitions objectForKey:name];
|
||||
NSDebugMLLog(@"low",@"pageDefElement:[%@]",
|
||||
pageDefElement);
|
||||
NSDebugMLLog(@"low",@"GSWeb Tag pageDefElement:[%@]",
|
||||
pageDefElement);
|
||||
if (pageDefElement)
|
||||
{
|
||||
NSDictionary* _associations=[pageDefElement associations];
|
||||
NSString* className=nil;
|
||||
className=[pageDefElement className];
|
||||
NSDebugMLLog(@"low",@"GSWeb Tag className:[%@]",
|
||||
className);
|
||||
if (className)
|
||||
{
|
||||
NSArray* children=nil;
|
||||
children=[self createElementsStartingWithAST:&nextAST
|
||||
stopOnTagNamed:tagName];
|
||||
NSDebugMLLog(@"low",@"CREATE Element of Class:%@",className);
|
||||
NSDebugMLLog(@"low",@"children:%@",children);
|
||||
NSDebugMLLog(@"low",@"associations:%@",_associations);
|
||||
{
|
||||
NSEnumerator* _tagAttrsEnum = [tagAttrs keyEnumerator];
|
||||
id _tagAttrKey=nil;
|
||||
id _tagAttrValue=nil;
|
||||
NSMutableDictionary* _addedAssoc=nil;
|
||||
while ((_tagAttrKey = [_tagAttrsEnum nextObject]))
|
||||
{
|
||||
if (![_tagAttrKey isEqualToString:@"name"]
|
||||
&& ![_associations objectForKey:_tagAttrKey])
|
||||
{
|
||||
if (!_addedAssoc)
|
||||
_addedAssoc=[NSMutableDictionary dictionary];
|
||||
_tagAttrValue=[tagAttrs objectForKey:_tagAttrKey];
|
||||
[_addedAssoc setObject:[GSWAssociation associationWithValue:_tagAttrValue]
|
||||
forKey:_tagAttrKey];
|
||||
};
|
||||
};
|
||||
if (_addedAssoc)
|
||||
{
|
||||
_associations=[_associations dictionaryByAddingEntriesFromDictionary:_addedAssoc];
|
||||
};
|
||||
};
|
||||
element=[GSWApp dynamicElementWithName:className
|
||||
associations:_associations
|
||||
template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease]
|
||||
languages:_languages];
|
||||
if (!element)
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"GSWTemplateParser: Creation failed for element named:%@ className:%@ in template named %@",
|
||||
[pageDefElement elementName],
|
||||
className,
|
||||
_templateName);
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"GSWTemplateParser: No class name in page definition for tag named:%@ pageDefElement=%@ in template named %@",
|
||||
name,
|
||||
pageDefElement,
|
||||
_templateName);
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"No element definition for tag named:%@ in template named %@",
|
||||
name,
|
||||
_templateName);
|
||||
};
|
||||
};
|
||||
_currentAST=nextAST;
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_stopTagName
|
||||
&& [tagName caseInsensitiveCompare:_stopTagName]==NSOrderedSame)
|
||||
{
|
||||
NSDebugMLLog(@"low",@"_stopTagName found: %@",_stopTagName);
|
||||
end=YES;
|
||||
stopBareString=YES;
|
||||
_currentAST=[_currentAST nextSibling];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
else if ([_currentAST tokenType]==GSWHTMLTokenType_COMMENT)
|
||||
{
|
||||
stopBareString=YES;
|
||||
element=[GSWHTMLComment elementWithString:[_currentAST text]];
|
||||
_currentAST=[_currentAST nextSibling];
|
||||
}
|
||||
NSDebugMLLog(@"low",@"end=%s inHTMLBareString=%s stopBareString=%s",
|
||||
end ? "YES" : "NO",
|
||||
inHTMLBareString ? "YES" : "NO",
|
||||
stopBareString ? "YES" : "NO");
|
||||
if (!element && !end && !stopBareString)
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"!element && !end && !stopBareString");
|
||||
if (!inHTMLBareString)
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"!inHTMLBareString ==> inHTMLBareString=YES");
|
||||
inHTMLBareString=YES;
|
||||
htmlBareString=[[NSMutableString new] autorelease];
|
||||
};
|
||||
NSDebugMLLog(@"low",@"inHTMLBareString: adding [%@]",[_currentAST text]);
|
||||
if ([_currentAST tokenType]==GSWHTMLTokenType_OPENTAG)
|
||||
[htmlBareString appendFormat:@"<%@>",[_currentAST text]];
|
||||
else if ([_currentAST tokenType]==GSWHTMLTokenType_CLOSETAG)
|
||||
[htmlBareString appendFormat:@"</%@>",[_currentAST text]];
|
||||
else
|
||||
[htmlBareString appendString:[_currentAST text]];
|
||||
NSDebugMLLog(@"low",@"htmlBareString: ==> [%@]",htmlBareString);
|
||||
_currentAST=[_currentAST nextSibling];
|
||||
};
|
||||
if (inHTMLBareString && (stopBareString || !_currentAST))
|
||||
{
|
||||
NSDebugMLLog0(@"low",@"inHTMLBareString && stopBareString");
|
||||
NSDebugMLLog(@"low",@"CREATE GSWHTMLBareString:\n%@",htmlBareString);
|
||||
element=[GSWHTMLBareString elementWithString:htmlBareString];
|
||||
NSDebugMLLog(@"low",@"element:%@",element);
|
||||
htmlBareString=nil;
|
||||
inHTMLBareString=NO;
|
||||
};
|
||||
if (element)
|
||||
{
|
||||
NSDebugMLLog(@"low",@"element to add: element=[%@]",element);
|
||||
[_elements addObject:element];
|
||||
element=nil;
|
||||
};
|
||||
NSDebugMLLog(@"low",@"element:%@",element);
|
||||
NSDebugMLLog(@"low",@"inHTMLBareString:%d",(int)inHTMLBareString);
|
||||
NSDebugMLLog(@"low",@"htmlBareString:%@",htmlBareString);
|
||||
};
|
||||
*_AST=_currentAST;
|
||||
NSDebugMLLog(@"low",@"_elements]:%@",_elements);
|
||||
LOGClassFnStop();
|
||||
return _elements;
|
||||
};
|
||||
|
||||
@end
|
||||
|
78
GSWeb.framework/GSWTemplateParserXML.h
Normal file
78
GSWeb.framework/GSWTemplateParserXML.h
Normal file
|
@ -0,0 +1,78 @@
|
|||
/* GSWTemplateParserXML.h - GSWeb: Class GSWTemplateParserXML
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Manuel Guesdon <mguesdon@sbuilders.com>
|
||||
Date: Mar 1999
|
||||
|
||||
This file is part of the GNUstep Web Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
// $Id$
|
||||
|
||||
#ifndef _GSWTemplateParserXML_h__
|
||||
#define _GSWTemplateParserXML_h__
|
||||
|
||||
#include "GSWTemplateParser.h"
|
||||
#include <Foundation/GSXML.h>
|
||||
#include <libxml/parser.h>
|
||||
#include <libxml/parserInternals.h>
|
||||
#include <libxml/SAX.h>
|
||||
#include <libxml/HTMLparser.h>
|
||||
|
||||
|
||||
@class GSWTemplateParser;
|
||||
//====================================================================
|
||||
@interface GSWTemplateParserSAXHandler : GSHTMLSAXHandler
|
||||
{
|
||||
GSWTemplateParser* _templateParser;
|
||||
};
|
||||
|
||||
+(void)lock;
|
||||
+(void)unlock;
|
||||
+(NSString*)cachedDTDContentForKey:(NSString*)url;
|
||||
+(void)setCachedDTDContent:(NSString*)externalContent
|
||||
forKey:(NSString*)url;
|
||||
+(id)handlerWithTemplateParser:(GSWTemplateParser*)templateParser;
|
||||
-(id)initWithTemplateParser:(GSWTemplateParser*)templateParser_;
|
||||
-(id)init;
|
||||
-(xmlParserInputPtr)resolveEntity:(NSString*)publicIdEntity
|
||||
systemID:(NSString*)systemIdEntity;
|
||||
-(void)warning:(NSString*)message;
|
||||
-(void)error:(NSString*)message;
|
||||
-(void)fatalError:(NSString*)message;
|
||||
@end
|
||||
|
||||
//====================================================================
|
||||
@interface GSWTemplateParserXML : GSWTemplateParser
|
||||
{
|
||||
GSXMLDocument* _xmlDocument;
|
||||
}
|
||||
|
||||
-(void)dealloc;
|
||||
-(NSArray*)templateElements;
|
||||
-(NSArray*)createElementsFromNode:(GSXMLNode*)node;
|
||||
|
||||
@end
|
||||
|
||||
//====================================================================
|
||||
@interface GSWTemplateParserXMLHTML : GSWTemplateParserXML
|
||||
{
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
#endif //_GSWTemplateParserXML_h__
|
789
GSWeb.framework/GSWTemplateParserXML.m
Normal file
789
GSWeb.framework/GSWTemplateParserXML.m
Normal file
|
@ -0,0 +1,789 @@
|
|||
/* GSWTemplateParserXML.m - GSWeb: Class GSWTemplateParserXML
|
||||
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||
|
||||
Written by: Manuel Guesdon <mguesdon@sbuilders.com>
|
||||
Date: Mar 1999
|
||||
|
||||
This file is part of the GNUstep Web Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; if not, write to the Free
|
||||
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
static char rcsId[] = "$Id$";
|
||||
|
||||
#include <gsweb/GSWeb.framework/GSWeb.h>
|
||||
#include <libxml/SAX.h>
|
||||
#include <libxml/xml-error.h>
|
||||
|
||||
extern xmlParserInputPtr xmlNewStringInputStream(xmlParserCtxtPtr ctxt,
|
||||
const xmlChar *buffer);
|
||||
|
||||
static NSLock* GSXMLParserLock=nil;
|
||||
static NSMutableDictionary* DTDCache=nil;
|
||||
|
||||
//====================================================================
|
||||
@implementation GSWTemplateParserSAXHandler
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+ (void) initialize
|
||||
{
|
||||
// Initialize DTD Cache, and Lock
|
||||
if (self==[GSWTemplateParserSAXHandler class])
|
||||
{
|
||||
if (!DTDCache)
|
||||
DTDCache=[NSMutableDictionary new];
|
||||
if (!GSXMLParserLock)
|
||||
GSXMLParserLock=[NSRecursiveLock new];
|
||||
};
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+(void)dealloc
|
||||
{
|
||||
// Dealloc DTD Cache and Lock
|
||||
if (self==[GSWTemplateParserSAXHandler class])
|
||||
{
|
||||
DESTROY(DTDCache);
|
||||
DESTROY(GSXMLParserLock);
|
||||
};
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
/*"Lock"*/
|
||||
+(void)lock
|
||||
{
|
||||
NS_DURING
|
||||
{
|
||||
[GSXMLParserLock lock];
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
NSLog(@"EXCEPTION:(GSXMLParserLock lock) %@ (%@) [%s %d]",localException,[localException reason],__FILE__,__LINE__);
|
||||
[localException raise];
|
||||
};
|
||||
NS_ENDHANDLER;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
/*"Unlock"*/
|
||||
+(void)unlock
|
||||
{
|
||||
NS_DURING
|
||||
{
|
||||
[GSXMLParserLock unlock];
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
NSLog(@"EXCEPTION:(GSXMLParserLock unlock) %@ (%@) [%s %d]",localException,[localException reason],__FILE__,__LINE__);
|
||||
[localException raise];
|
||||
};
|
||||
NS_ENDHANDLER;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
/*"Find cached DTD Content for Key url"*/
|
||||
+(NSString*)cachedDTDContentForKey:(NSString*)url
|
||||
{
|
||||
NSString* content=nil;
|
||||
[self lock];
|
||||
content=[DTDCache objectForKey:url];
|
||||
[self unlock];
|
||||
return content;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
/*"Cache DTD Content externalContent for Key url"*/
|
||||
+(void)setCachedDTDContent:(NSString*)externalContent
|
||||
forKey:(NSString*)url
|
||||
{
|
||||
[self lock];
|
||||
[DTDCache setObject:externalContent
|
||||
forKey:url];
|
||||
[self unlock];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
+(id)handlerWithTemplateParser:(GSWTemplateParser*)templateParser_
|
||||
{
|
||||
return AUTORELEASE([[self alloc] initWithTemplateParser:templateParser_]);
|
||||
};
|
||||
|
||||
extern void externalSubset (void *ctx,
|
||||
const xmlChar *name,
|
||||
const xmlChar *ExternalID,
|
||||
const xmlChar *SystemID);
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(id)initWithTemplateParser:(GSWTemplateParser*)templateParser_
|
||||
{
|
||||
if ((self=[self init]))
|
||||
{
|
||||
_templateParser=templateParser_;
|
||||
NSLog(@"my sax lib=%p",lib);
|
||||
if (lib)
|
||||
{
|
||||
xmlSAXHandlerPtr def=NULL;
|
||||
if ([_templateParser isKindOfClass:[GSWTemplateParserXMLHTML class]])
|
||||
def=&htmlDefaultSAXHandler;
|
||||
else
|
||||
def=&xmlDefaultSAXHandler;
|
||||
((xmlSAXHandlerPtr)lib)->internalSubset = def->internalSubset;
|
||||
((xmlSAXHandlerPtr)lib)->isStandalone = def->isStandalone;
|
||||
((xmlSAXHandlerPtr)lib)->hasInternalSubset = def->hasInternalSubset;
|
||||
((xmlSAXHandlerPtr)lib)->hasExternalSubset = def->hasExternalSubset;
|
||||
((xmlSAXHandlerPtr)lib)->resolveEntity = def->resolveEntity;
|
||||
((xmlSAXHandlerPtr)lib)->getEntity = def->getEntity;
|
||||
((xmlSAXHandlerPtr)lib)->entityDecl = def->entityDecl;
|
||||
((xmlSAXHandlerPtr)lib)->notationDecl = def->notationDecl;
|
||||
((xmlSAXHandlerPtr)lib)->attributeDecl = def->attributeDecl;
|
||||
((xmlSAXHandlerPtr)lib)->elementDecl = def->elementDecl;
|
||||
((xmlSAXHandlerPtr)lib)->unparsedEntityDecl = def->unparsedEntityDecl;
|
||||
((xmlSAXHandlerPtr)lib)->startDocument = def->startDocument;
|
||||
((xmlSAXHandlerPtr)lib)->endDocument = def->endDocument;
|
||||
((xmlSAXHandlerPtr)lib)->startElement = def->startElement;
|
||||
((xmlSAXHandlerPtr)lib)->endElement = def->endElement;
|
||||
((xmlSAXHandlerPtr)lib)->reference = def->reference;
|
||||
((xmlSAXHandlerPtr)lib)->characters = def->characters;
|
||||
((xmlSAXHandlerPtr)lib)->ignorableWhitespace = def->ignorableWhitespace;
|
||||
((xmlSAXHandlerPtr)lib)->processingInstruction = def->processingInstruction;
|
||||
((xmlSAXHandlerPtr)lib)->comment = def->comment;
|
||||
// ((xmlSAXHandlerPtr)lib)->warning = xmlParserWarning;
|
||||
// ((xmlSAXHandlerPtr)lib)->error = xmlParserError;
|
||||
// ((xmlSAXHandlerPtr)lib)->fatalError = xmlParserError;
|
||||
((xmlSAXHandlerPtr)lib)->getParameterEntity = def->getParameterEntity;
|
||||
((xmlSAXHandlerPtr)lib)->cdataBlock = def->cdataBlock;
|
||||
((xmlSAXHandlerPtr)lib)->externalSubset = def->externalSubset;
|
||||
};
|
||||
};
|
||||
return self;
|
||||
};
|
||||
|
||||
-(id)init
|
||||
{
|
||||
if ((self=[super init]))
|
||||
{
|
||||
};
|
||||
return self;
|
||||
};
|
||||
|
||||
xmlParserInputPtr GSWTemplateParserSAXHandler_ExternalLoader(const char *systemId,
|
||||
const char *publicId,
|
||||
xmlParserCtxtPtr context)
|
||||
{
|
||||
/*
|
||||
NSCAssert(context,@"No Parser Context");
|
||||
NSCAssert(context->_private,@"No GSSAXHandler reference in Parser Context");
|
||||
return [(GSSAXHandler*)(context->_private)resolveEntity:[NSString stringWithCString:publicId]
|
||||
systemID:[NSString stringWithCString:systemId]];
|
||||
*/
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
//exemple:
|
||||
// publicIdEntity
|
||||
// -//IETF//DTD HTML//EN
|
||||
// -//W3C//ENTITIES Special for XHTML//EN
|
||||
// -//W3C//ENTITIES Symbols for XHTML//EN
|
||||
// -//W3C//ENTITIES Latin 1 for XHTML//EN
|
||||
// -//W3C//DTD XHTML 1.0 Transitional//EN
|
||||
// -//W3C//DTD XHTML 1.0 Strict//EN
|
||||
// -//W3C//DTD XHTML 1.0 Frameset//EN
|
||||
// -//W3C//DTD HTML 4.01//EN
|
||||
// -//W3C//DTD HTML 4.01 Transitional//EN
|
||||
// -//W3C//DTD HTML 4.01 Frameset//EN
|
||||
// -//IETF//DTD HTML//EN
|
||||
// -//W3C//DTD HTML 3.2//EN
|
||||
// systemIdEntity
|
||||
// http://www.w3c.org/html.dtd
|
||||
// html.dtd
|
||||
|
||||
-(xmlParserInputPtr)resolveEntity:(NSString*)publicIdEntity
|
||||
systemID:(NSString*)systemIdEntity
|
||||
{
|
||||
NSString* externalContent=nil;
|
||||
xmlParserInputPtr result = 0;
|
||||
LOGObjectFnStart();
|
||||
NSLog(@"resolveEntity:%@ systemID:%@ inParserContext:%p\n",
|
||||
publicIdEntity,
|
||||
systemIdEntity,
|
||||
lib);
|
||||
NSAssert(publicIdEntity || systemIdEntity,
|
||||
@"resolveEntity:systemIdEntity: publicIdEntity and systemIdEntity are both nil");
|
||||
if (systemIdEntity)
|
||||
{
|
||||
externalContent=[[self class] cachedDTDContentForKey:systemIdEntity];
|
||||
if (!externalContent)
|
||||
{
|
||||
NSString* fileName=nil;
|
||||
NSString* resourceName=systemIdEntity;
|
||||
if ([[resourceName pathExtension] isEqual:@"dtd"])
|
||||
resourceName=[resourceName stringByDeletingPathExtension];
|
||||
fileName=[NSBundle pathForGNUstepResource:resourceName
|
||||
ofType:@"dtd"
|
||||
inDirectory:@"DTDs"];
|
||||
NSLog(@"systemIdEntity: fileName=%@ for Resource:%@",fileName,resourceName);
|
||||
if (fileName)
|
||||
{
|
||||
externalContent=[NSString stringWithContentsOfFile:fileName];
|
||||
};
|
||||
externalContent=[NSString stringWithContentsOfFile:fileName];
|
||||
if (externalContent)
|
||||
{
|
||||
NSString* gswebTag=@"\n<!ELEMENT gsweb %Flow;>
|
||||
<!ATTLIST gsweb
|
||||
%attrs;
|
||||
>\n";
|
||||
// name NMTOKEN; #IMPLIED
|
||||
NSLog(@"gswebTag=\n%@",gswebTag);
|
||||
externalContent=[externalContent stringByAppendingString:gswebTag];
|
||||
|
||||
[[self class] setCachedDTDContent:externalContent
|
||||
forKey:systemIdEntity];
|
||||
};
|
||||
};
|
||||
};
|
||||
if (!externalContent && publicIdEntity)
|
||||
{
|
||||
externalContent=[[self class] cachedDTDContentForKey:publicIdEntity];
|
||||
if (!externalContent)
|
||||
{
|
||||
//Well Known DTDs / Entities
|
||||
if ([publicIdEntity hasPrefix:@"-//"])
|
||||
{
|
||||
// 0: -
|
||||
// 1: W3C or IETF
|
||||
// 2: DTD ... or ENTITIES ...
|
||||
// 3: EN or ... (language)
|
||||
NSArray* parts=[publicIdEntity componentsSeparatedByString:@"//"];
|
||||
if ([parts count]>=2)
|
||||
{
|
||||
NSString* whatPart=[parts objectAtIndex:2];
|
||||
if ([whatPart hasPrefix:@"DTD"])
|
||||
{
|
||||
NSString* resourceName=nil;
|
||||
NSString* fileName=nil;
|
||||
if ([whatPart rangeOfString:@"Transitional"].length>0)
|
||||
resourceName=@"xhtml1-transitional.dtd";
|
||||
else if ([whatPart rangeOfString:@"Strict"].length>0)
|
||||
resourceName=@"xhtml1-strict.dtd";
|
||||
else if ([whatPart rangeOfString:@"Frameset"].length>0)
|
||||
resourceName=@"xhtml1-frameset.dtd";
|
||||
else
|
||||
{
|
||||
NSLog(@"Unknown DTD: %@. Choose default: xhtml1-transitional.dtd",publicIdEntity);
|
||||
resourceName=@"xhtml1-transitional.dtd"; // guess
|
||||
};
|
||||
if (resourceName)
|
||||
{
|
||||
if ([[resourceName pathExtension] isEqual:@"dtd"])
|
||||
resourceName=[resourceName stringByDeletingPathExtension];
|
||||
fileName=[NSBundle pathForGNUstepResource:resourceName
|
||||
ofType:@"dtd"
|
||||
inDirectory:@"DTDs"];
|
||||
NSLog(@"systemIdEntity: fileName=%@ for Resource:%@",fileName,publicIdEntity);
|
||||
if (fileName)
|
||||
{
|
||||
externalContent=[NSString stringWithContentsOfFile:fileName];
|
||||
};
|
||||
};
|
||||
}
|
||||
else if ([whatPart hasPrefix:@"ENTITIES"])
|
||||
{
|
||||
NSString* resourceName=nil;
|
||||
NSString* fileName=nil;
|
||||
if ([whatPart rangeOfString:@"Symbols"].length>0)
|
||||
resourceName=@"xhtml-symbol.ent";
|
||||
else if ([whatPart rangeOfString:@"Special"].length>0)
|
||||
resourceName=@"xhtml-special.ent";
|
||||
else if ([whatPart rangeOfString:@"Latin 1"].length>0)
|
||||
resourceName=@"xhtml-lat1.ent";
|
||||
else
|
||||
{
|
||||
NSLog(@"Unknown ENTITIES: %@",publicIdEntity);
|
||||
};
|
||||
if (resourceName)
|
||||
{
|
||||
if ([[resourceName pathExtension] isEqual:@"ent"])
|
||||
resourceName=[resourceName stringByDeletingPathExtension];
|
||||
fileName=[NSBundle pathForGNUstepResource:resourceName
|
||||
ofType:@"ent"
|
||||
inDirectory:@"DTDs"];
|
||||
NSLog(@"systemIdEntity: fileName=%@ for Resource:%@",fileName,publicIdEntity);
|
||||
if (fileName)
|
||||
{
|
||||
externalContent=[NSString stringWithContentsOfFile:fileName];
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"Unknown publicIdEntity %@",publicIdEntity);
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"Don't know how to parse publicIdEntity %@",publicIdEntity);
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"Don't know what to do with publicIdEntity %@",publicIdEntity);
|
||||
};
|
||||
if (externalContent)
|
||||
[[self class] setCachedDTDContent:externalContent
|
||||
forKey:publicIdEntity];
|
||||
};
|
||||
};
|
||||
if (externalContent)
|
||||
{
|
||||
result=xmlNewStringInputStream(lib,[externalContent cString]);
|
||||
};
|
||||
NSAssert2(result,@"Can't load external (publicIdEntity:%@ systemIdEntity:%@)",publicIdEntity,systemIdEntity);
|
||||
NSLog(@"LOADED: resolveEntity:%@ systemID:%@ inParserContext:%p\n",
|
||||
publicIdEntity,
|
||||
systemIdEntity,
|
||||
lib);
|
||||
LOGObjectFnStop();
|
||||
return result;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)warning:(NSString*)message
|
||||
{
|
||||
[[GSWApplication application] logWithFormat:@"%@ Warning: %@",
|
||||
[_templateParser logPrefix],
|
||||
message];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)error: (NSString*)message
|
||||
{
|
||||
[[GSWApplication application] logErrorWithFormat:@"%@ Error: %@",
|
||||
[_templateParser logPrefix],
|
||||
message];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)fatalError: (NSString*)message
|
||||
{
|
||||
[[GSWApplication application] logErrorWithFormat:@"%@ Fatal Error: %@",
|
||||
[_templateParser logPrefix],
|
||||
message];
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
//====================================================================
|
||||
@implementation GSWTemplateParserXML
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(void)dealloc
|
||||
{
|
||||
DESTROY(_xmlDocument);
|
||||
[super dealloc];
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
static NSString* TabsForLevel(int level)
|
||||
{
|
||||
int i=0;
|
||||
NSMutableString* tabs=[NSMutableString string];
|
||||
for (i=0;i<level;i++)
|
||||
{
|
||||
[tabs appendString:@"\t"];
|
||||
};
|
||||
return tabs;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSString*)dumpNode:(GSXMLNode*)node
|
||||
atLevel:(int)level
|
||||
{
|
||||
NSString* dumpString=[NSString string];
|
||||
while (node)
|
||||
{
|
||||
dumpString=[dumpString stringByAppendingFormat:@"%@%@ [Type:%@] [%@]:\n%@\n",
|
||||
TabsForLevel(level),
|
||||
[node name],
|
||||
[node typeDescription],
|
||||
[node propertiesAsDictionary],
|
||||
[node content]];
|
||||
if ([node children])
|
||||
dumpString=[dumpString stringByAppendingString:[self dumpNode:[node children]
|
||||
atLevel:level+1]];
|
||||
node=[node next];
|
||||
};
|
||||
return dumpString;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
-(NSArray*)templateElements
|
||||
{
|
||||
NSArray* elements=nil;
|
||||
LOGObjectFnStart();
|
||||
if (!_xmlDocument)
|
||||
{
|
||||
BOOL parseOk=NO;
|
||||
GSXMLParser* parser=nil;
|
||||
GSWTemplateParserSAXHandler* sax=nil;
|
||||
NSStringEncoding stringEncoding=_stringEncoding;
|
||||
|
||||
if (stringEncoding==GSUndefinedEncoding)
|
||||
stringEncoding=NSISOLatin1StringEncoding;
|
||||
|
||||
sax=[GSWTemplateParserSAXHandler handlerWithTemplateParser:self];
|
||||
//NSLog(@"SAX=%p",sax);
|
||||
NSLog(@"self class=%@",[self class]);
|
||||
if ([self isKindOfClass:[GSWTemplateParserXMLHTML class]])
|
||||
parser=[GSHTMLParser parserWithSAXHandler:sax
|
||||
withData:[_string dataUsingEncoding:stringEncoding]];
|
||||
else
|
||||
{
|
||||
NSString* xmlHeader=nil;
|
||||
NSRange docTypeRange=NSMakeRange(NSNotFound,0);
|
||||
NSString* stringToParse=nil;
|
||||
//NSLog(@"stringEncoding=%d",(int)stringEncoding);
|
||||
NSString* encodingString=nil;
|
||||
//NSLog(@"_string=%@",_string);
|
||||
encodingString=[GSXMLParser xmlEncodingStringForStringEncoding:stringEncoding];
|
||||
//NSLog(@"encodingString=%@",encodingString);
|
||||
if (encodingString)
|
||||
encodingString=[NSString stringWithFormat:@" encoding=\"%@\"",encodingString];
|
||||
else
|
||||
encodingString=@"";
|
||||
//NSLog(@"encodingString=%@",encodingString);
|
||||
xmlHeader=[NSString stringWithFormat:@"<?xml version=\"%@\"%@?>\n",
|
||||
@"1.0",
|
||||
encodingString];
|
||||
//NSLog(@"xmlHeader=%@",xmlHeader);
|
||||
//NSLog(@"_string=%@",_string);
|
||||
docTypeRange=[_string rangeOfString:@"<!DOCTYPE"];
|
||||
if (docTypeRange.length==0)
|
||||
stringToParse=[@"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"xhtml1-transitional.dtd\">\n" stringByAppendingString:_string];
|
||||
else
|
||||
stringToParse=_string;
|
||||
//NSLog(@"stringToParse=%@",stringToParse);
|
||||
stringToParse=[xmlHeader stringByAppendingString:stringToParse];
|
||||
NSLog(@"stringToParse=%@",stringToParse);
|
||||
parser=[GSXMLParser parserWithSAXHandler:sax
|
||||
withData:[stringToParse dataUsingEncoding:stringEncoding]];
|
||||
};
|
||||
[parser doValidityChecking:YES];
|
||||
[parser getWarnings:YES];
|
||||
[parser setExternalEntityLoader:GSWTemplateParserSAXHandler_ExternalLoader];
|
||||
NS_DURING
|
||||
{
|
||||
parseOk=[parser parse];
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
LOGError(@"%@ Exception in parse! Exception: %@",
|
||||
[self logPrefix],
|
||||
localException);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo(localException,
|
||||
@"%@ - In [parser parse] Exception!",
|
||||
[self logPrefix]);
|
||||
[localException retain];
|
||||
[localException autorelease];
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
if (!parseOk)
|
||||
{
|
||||
NSDebugMLog(@"######Parse FAILED errNo=%d [parser doc]=%p",
|
||||
[parser errNo],
|
||||
[parser doc]);
|
||||
// May be validity errors only (like no HTML root)
|
||||
if ([parser doc])
|
||||
parseOk=YES;
|
||||
};
|
||||
if (parseOk)
|
||||
{
|
||||
GSXMLNode* node=nil;
|
||||
NSDebugMLog(@"Root");
|
||||
ASSIGN(_xmlDocument,[parser doc]);
|
||||
node=[_xmlDocument root];
|
||||
NSAssert1(node,@"%@ Empty Document (root)",
|
||||
[self logPrefix]);
|
||||
#ifndef NDEBUG
|
||||
{
|
||||
NSString* dumpString=[self dumpNode:node
|
||||
atLevel:0];
|
||||
NSDebugMLLog(@"low",@"%@ _xmlDocument=\n%@",
|
||||
[self logPrefix],
|
||||
dumpString);
|
||||
};
|
||||
#endif
|
||||
/* if (node->type!=XML_DTD_NODE)
|
||||
{
|
||||
NSLog(@"Bad first node type: %@ instead of %@",
|
||||
[nodeTypes objectForKey:[NSString stringWithFormat:@"%d",(int)node->type]],
|
||||
[nodeTypes objectForKey:[NSString stringWithFormat:@"%d",(int)XML_DTD_NODE]]);
|
||||
};
|
||||
*/
|
||||
NSDebugMLog(@"Test Root");
|
||||
if ([node type]!=XML_ELEMENT_NODE)
|
||||
node=[node children];
|
||||
NSDebugMLog(@"Test Root children");
|
||||
NSAssert1(node,@"%@ Empty Document ([root children])",
|
||||
[self logPrefix]);
|
||||
if ([node type]!=XML_ELEMENT_NODE)
|
||||
node=[node next];
|
||||
NSDebugMLog(@"Test Root children Next");
|
||||
NSAssert1(node,@"%@ Empty Document ([[root children] next])",
|
||||
[self logPrefix]);
|
||||
if (node)
|
||||
{
|
||||
NSDebugMLog(@"Call createElementsFromNode:");
|
||||
NS_DURING
|
||||
{
|
||||
elements=[self createElementsFromNode:node];
|
||||
}
|
||||
NS_HANDLER
|
||||
{
|
||||
LOGError(@"%@ Exception in elements creation!",
|
||||
[self logPrefix]);
|
||||
localException=ExceptionByAddingUserInfoObjectFrameInfo(localException,
|
||||
@"%@ - Exception in elements creation",
|
||||
[self logPrefix]);
|
||||
[localException retain];
|
||||
[localException autorelease];
|
||||
[localException raise];
|
||||
}
|
||||
NS_ENDHANDLER;
|
||||
};
|
||||
};
|
||||
};
|
||||
LOGObjectFnStop();
|
||||
return elements;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
/*
|
||||
text [Type:XML_TEXT_NODE] [{}] ####
|
||||
head [Type:XML_ELEMENT_NODE] [{}] ##(null)##
|
||||
title [Type:XML_ELEMENT_NODE] [{}] ##(null)##
|
||||
text [Type:XML_TEXT_NODE] [{}] ##MyTitle##
|
||||
text [Type:XML_TEXT_NODE] [{}] ####
|
||||
body [Type:XML_ELEMENT_NODE] [{bgcolor = white; }] ##(null)##
|
||||
text [Type:XML_TEXT_NODE] [{}] ####
|
||||
gsweb [Type:XML_ELEMENT_NODE] [{name = MyObject; }] ##(null)##
|
||||
text [Type:XML_TEXT_NODE] [{}] ##AText##
|
||||
p [Type:XML_ELEMENT_NODE] [{align = center; }] ##(null)##
|
||||
text [Type:XML_TEXT_NODE] [{}] ##Text2##
|
||||
b [Type:XML_ELEMENT_NODE] [{}] ##(null)##
|
||||
text [Type:XML_TEXT_NODE] [{}] ##Text3##
|
||||
text [Type:XML_TEXT_NODE] [{}] ####
|
||||
text [Type:XML_TEXT_NODE] [{}] ##TEXTB##
|
||||
comment [Type:XML_COMMENT_NODE] [{}] ##MyComment##
|
||||
text [Type:XML_TEXT_NODE] [{}] ##TEXTC##
|
||||
text [Type:XML_TEXT_NODE] [{}] ####
|
||||
*/
|
||||
-(NSArray*)createElementsFromNode:(GSXMLNode*)node
|
||||
{
|
||||
GSXMLNode* currentNode=node;
|
||||
NSMutableArray* _elements=nil;
|
||||
NSAutoreleasePool* arp = nil;
|
||||
LOGObjectFnStart();
|
||||
_elements=[NSMutableArray array];
|
||||
arp=[NSAutoreleasePool new];
|
||||
while(currentNode)
|
||||
{
|
||||
GSWElement* elem=nil;
|
||||
NSDebugMLog(@"BEGIN node=%p %@ [Type:%@] [%@] ##%@##\n",
|
||||
currentNode,
|
||||
[currentNode name],
|
||||
[currentNode typeDescription],
|
||||
[currentNode propertiesAsDictionary],
|
||||
[currentNode content]);
|
||||
switch([currentNode type])
|
||||
{
|
||||
case XML_TEXT_NODE:
|
||||
{
|
||||
elem=[GSWHTMLBareString elementWithString:[currentNode content]];
|
||||
NSDebugMLog(@"TEXT element=%@",elem);
|
||||
};
|
||||
break;
|
||||
case XML_COMMENT_NODE:
|
||||
{
|
||||
elem=[GSWHTMLBareString elementWithString:[currentNode content]];
|
||||
NSDebugMLog(@"COMMENT element=%@",elem);
|
||||
};
|
||||
break;
|
||||
default:
|
||||
{
|
||||
NSArray* children=nil;
|
||||
NSDictionary* nodeAttributes=nil;
|
||||
NSString* nodeName=nil;
|
||||
NSString* nodeNameAttribute=nil;
|
||||
nodeName=[currentNode name];
|
||||
NSDebugMLog(@"DEFAULT (%@)",nodeName);
|
||||
if ([currentNode children])
|
||||
{
|
||||
children=[self createElementsFromNode:[currentNode children]];
|
||||
NSDebugMLog(@"node=%p children=%@",currentNode,children);
|
||||
};
|
||||
//if (currentNode->type==XML_ELEMENT_NODE)
|
||||
{
|
||||
nodeAttributes=[currentNode propertiesAsDictionary];
|
||||
nodeNameAttribute=[nodeAttributes objectForKey:@"name"];
|
||||
NSDebugMLog(@"node=%p nodeAttributes=%@",currentNode,nodeAttributes);
|
||||
NSDebugMLog(@"node=%p nodeNameAttribute=%@",currentNode,nodeNameAttribute);
|
||||
if ([nodeName caseInsensitiveCompare:@"gsweb"]==NSOrderedSame)
|
||||
{
|
||||
GSWPageDefElement* definitionsElement=nil;
|
||||
if (!nodeNameAttribute)
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"%@ No element name for gsweb tag",
|
||||
[self logPrefix]);
|
||||
}
|
||||
else
|
||||
{
|
||||
definitionsElement=[_definitions objectForKey:nodeNameAttribute];
|
||||
NSDebugMLLog(@"low",@"definitionsElement:[%@]",
|
||||
definitionsElement);
|
||||
NSDebugMLLog(@"low",@"GSWeb Tag definitionsElement:[%@]",
|
||||
definitionsElement);
|
||||
if (!definitionsElement)
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"%@ No element definition for tag named:%@",
|
||||
[self logPrefix],
|
||||
nodeNameAttribute);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDictionary* _associations=[definitionsElement associations];
|
||||
NSString* className=[definitionsElement className];
|
||||
NSDebugMLLog(@"low",@"node=%p GSWeb Tag className:[%@]",currentNode,className);
|
||||
if (!className)
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"%@No class name in page definition for tag named:%@ definitionsElement=%@",
|
||||
[self logPrefix],
|
||||
nodeNameAttribute,
|
||||
definitionsElement);
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDebugMLLog(@"low",@"node=%p associations:%@",currentNode,_associations);
|
||||
{
|
||||
NSEnumerator* _nodeAttributesEnum = [nodeAttributes keyEnumerator];
|
||||
id _tagAttrKey=nil;
|
||||
id _tagAttrValue=nil;
|
||||
NSMutableDictionary* _addedAssoc=nil;
|
||||
while ((_tagAttrKey = [_nodeAttributesEnum nextObject]))
|
||||
{
|
||||
if (![_tagAttrKey isEqualToString:@"name"] && ![_associations objectForKey:_tagAttrKey])
|
||||
{
|
||||
if (!_addedAssoc)
|
||||
_addedAssoc=(NSMutableDictionary*)[NSMutableDictionary dictionary];
|
||||
_tagAttrValue=[nodeAttributes objectForKey:_tagAttrKey];
|
||||
[_addedAssoc setObject:[GSWAssociation associationWithValue:_tagAttrValue]
|
||||
forKey:_tagAttrKey];
|
||||
};
|
||||
};
|
||||
if (_addedAssoc)
|
||||
{
|
||||
_associations=[_associations dictionaryByAddingEntriesFromDictionary:_addedAssoc];
|
||||
};
|
||||
};
|
||||
NSDebugMLog(@"node=%p gsweb name=%@ dynamicElementWithName: children=%@",
|
||||
currentNode,
|
||||
nodeNameAttribute,
|
||||
children);
|
||||
NSDebugMLog(@"node=%p %@ [Type:%@] [%@] ##%@##\n",
|
||||
currentNode,
|
||||
[currentNode name],
|
||||
[currentNode typeDescription],
|
||||
[currentNode propertiesAsDictionary],
|
||||
[currentNode content]);
|
||||
elem=[GSWApp dynamicElementWithName:className
|
||||
associations:_associations
|
||||
template:[[[GSWHTMLStaticGroup alloc]initWithContentElements:children]autorelease]
|
||||
languages:_languages];
|
||||
NSDebugMLog(@"node=%p element=%@",currentNode,elem);
|
||||
if (!elem)
|
||||
{
|
||||
ExceptionRaise(@"GSWTemplateParser",
|
||||
@"%@ Creation failed for element named:%@ className:%@",
|
||||
[self logPrefix],
|
||||
[definitionsElement elementName],
|
||||
className);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
else
|
||||
{
|
||||
NSDictionary* _associations=nil;
|
||||
NSEnumerator* _nodeAttributesEnum = [nodeAttributes keyEnumerator];
|
||||
id _tagAttrKey=nil;
|
||||
id _tagAttrValue=nil;
|
||||
NSMutableDictionary* _addedAssoc=nil;
|
||||
NSDebugMLog(@"node=%p Create nodeName=%@",currentNode,nodeName);
|
||||
while ((_tagAttrKey = [_nodeAttributesEnum nextObject]))
|
||||
{
|
||||
if (![_tagAttrKey isEqualToString:@"name"] && ![_associations objectForKey:_tagAttrKey])
|
||||
{
|
||||
if (!_addedAssoc)
|
||||
_addedAssoc=(NSMutableDictionary*)[NSMutableDictionary dictionary];
|
||||
_tagAttrValue=[nodeAttributes objectForKey:_tagAttrKey];
|
||||
[_addedAssoc setObject:[GSWAssociation associationWithValue:_tagAttrValue]
|
||||
forKey:_tagAttrKey];
|
||||
};
|
||||
};
|
||||
if (_addedAssoc)
|
||||
{
|
||||
_associations=[NSDictionary dictionaryWithDictionary:_addedAssoc];
|
||||
};
|
||||
NSDebugMLog(@"node=%p StaticElement: children=%@",currentNode,children);
|
||||
elem=[[[GSWHTMLStaticElement alloc]initWithName:nodeName
|
||||
attributeDictionary:_associations
|
||||
contentElements:children]autorelease];
|
||||
NSDebugMLog(@"node=%p element=%@",currentNode,elem);
|
||||
};
|
||||
};
|
||||
};
|
||||
break;
|
||||
};
|
||||
[_elements addObject:elem];
|
||||
NSDebugMLog(@"END node=%p %@ [Type:%@] [%@] ##%@##\n",
|
||||
currentNode,
|
||||
[currentNode name],
|
||||
[currentNode typeDescription],
|
||||
[currentNode propertiesAsDictionary],
|
||||
[currentNode content]);
|
||||
currentNode=[currentNode next];
|
||||
};
|
||||
DESTROY(arp);
|
||||
LOGObjectFnStop();
|
||||
NSDebugMLog(@"_elements=%@",_elements);
|
||||
return _elements;
|
||||
};
|
||||
|
||||
@end
|
||||
|
||||
|
||||
//====================================================================
|
||||
// used only for XML/XMLHTML differences
|
||||
@implementation GSWTemplateParserXMLHTML
|
||||
|
||||
@end
|
|
@ -102,6 +102,7 @@ extern BOOL boolValueWithDefaultFor(id id_,BOOL default_);
|
|||
extern BOOL isHeaderKeysEqual(NSString* headerKey,NSString* testKey);
|
||||
extern BOOL SBIsEqual(id id1,id id2);
|
||||
extern BOOL SBIsValueEqual(id id1,id id2);
|
||||
extern BOOL SBIsValueIsIn(id id1,id id2);
|
||||
|
||||
extern id GetTmpName(NSString* dir,NSString* prefix);
|
||||
extern NSTimeInterval NSTimeIntervalFromTimeVal(struct timeval* tv);
|
||||
|
@ -417,7 +418,7 @@ extern NSData* HexStringToData(NSString* _string);
|
|||
-(void)deleteFirstBytesCount:(unsigned int)bytesCount_;
|
||||
-(void)deleteLastBytesCount:(unsigned int)bytesCount_;
|
||||
@end
|
||||
|
||||
/*
|
||||
//====================================================================
|
||||
typedef enum _NSNumFmtType
|
||||
{
|
||||
|
@ -437,5 +438,5 @@ typedef enum _NSNumFmtType
|
|||
forString:(NSString*)string
|
||||
errorDescription:(NSString**)error;
|
||||
@end
|
||||
|
||||
*/
|
||||
#endif // _GSWebUtils_h__
|
||||
|
|
|
@ -127,22 +127,35 @@ BOOL SBIsValueEqual(id id1,id id2)
|
|||
{
|
||||
BOOL _equal=SBIsEqual(id1,id2);
|
||||
if (!_equal
|
||||
&& [id1 class]!=[id2 class])
|
||||
{
|
||||
if ([id1 isKindOfClass:[NSString class]])
|
||||
{
|
||||
NSString* _id2String=[NSString stringWithObject:id2];
|
||||
_equal=[id1 isEqualToString:_id2String];
|
||||
}
|
||||
else if ([id2 isKindOfClass:[NSString class]])
|
||||
{
|
||||
NSString* _id1String=[NSString stringWithObject:id1];
|
||||
_equal=[id2 isEqualToString:_id1String];
|
||||
};
|
||||
};
|
||||
&& [id1 class]!=[id2 class])
|
||||
{
|
||||
if ([id1 isKindOfClass:[NSString class]])
|
||||
{
|
||||
NSString* _id2String=[NSString stringWithObject:id2];
|
||||
_equal=[id1 isEqualToString:_id2String];
|
||||
}
|
||||
else if ([id2 isKindOfClass:[NSString class]])
|
||||
{
|
||||
NSString* _id1String=[NSString stringWithObject:id1];
|
||||
_equal=[id2 isEqualToString:_id1String];
|
||||
};
|
||||
};
|
||||
return _equal;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
BOOL SBIsValueIsIn(id id1,id id2)
|
||||
{
|
||||
int i=0;
|
||||
int count=[id2 count];
|
||||
for(i=0;i<count;i++)
|
||||
{
|
||||
if (SBIsValueEqual(id1,[id2 objectAtIndex:i]))
|
||||
return YES;
|
||||
};
|
||||
return NO;
|
||||
};
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
id GetTmpName(NSString* dir,NSString* prefix)
|
||||
{
|
||||
|
@ -1980,7 +1993,7 @@ NSData* HexStringToData(NSString* _string)
|
|||
};
|
||||
@end
|
||||
|
||||
|
||||
/*
|
||||
//====================================================================
|
||||
@implementation NSNumberFormatter
|
||||
|
||||
|
@ -2106,3 +2119,4 @@ NSData* HexStringToData(NSString* _string)
|
|||
};
|
||||
|
||||
@end
|
||||
*/
|
||||
|
|
|
@ -60,6 +60,7 @@
|
|||
#include <Foundation/NSConcreteNumber.h>
|
||||
#include <Foundation/NSGArray.h>
|
||||
#include <Foundation/NSFormatter.h>
|
||||
#include <Foundation/GSXML.h>
|
||||
#include "GSCache.h"
|
||||
|
||||
|
||||
|
@ -260,6 +261,8 @@
|
|||
#include <gsweb/GSWeb.framework/GSWProjectBundle.h>
|
||||
#include <gsweb/GSWeb.framework/GSWMultiKeyDictionary.h>
|
||||
#include <gsweb/GSWeb.framework/GSWTemplateParser.h>
|
||||
#include <gsweb/GSWeb.framework/GSWTemplateParserXML.h>
|
||||
#include <gsweb/GSWeb.framework/GSWTemplateParserANTLR.h>
|
||||
#include <gsweb/GSWeb.framework/GSWDynamicURLString.h>
|
||||
#include <gsweb/GSWeb.framework/GSWBindingNameAssociation.h>
|
||||
#include <gsweb/GSWeb.framework/GSWURLValuedElementData.h>
|
||||
|
|
|
@ -58,7 +58,13 @@ gsdocs:
|
|||
cd ..; )
|
||||
|
||||
# Things to do after installing
|
||||
# after-install::
|
||||
after-install::
|
||||
@if [ ! -f $(dstDTDDir) ]; then \
|
||||
$(MKDIRS) $(dstDTDDir); \
|
||||
fi; \
|
||||
for file in $(DTD_FILES); do \
|
||||
$(INSTALL_DATA) $(srcDTDDir)/$$file $(dstDTDDir)/$$file; \
|
||||
done;
|
||||
|
||||
# Things to do before uninstalling
|
||||
# before-uninstall::
|
||||
|
|
|
@ -38,7 +38,11 @@ ADDITIONAL_CPPFLAGS =
|
|||
|
||||
# Additional flags to pass to the Objective-C compiler
|
||||
#new
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN
|
||||
ifeq ($(GDL2), yes)
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN -DGDL2
|
||||
else
|
||||
ADDITIONAL_OBJCFLAGS = -DUSE_BUILTIN
|
||||
endif
|
||||
|
||||
# Additional flags to pass to the C compiler
|
||||
#new
|
||||
|
@ -49,9 +53,9 @@ ADDITIONAL_INCLUDE_DIRS = -I. -I$(GNUSTEP_SYSTEM_ROOT)/db -I../..
|
|||
|
||||
# Additional LDFLAGS to pass to the linker
|
||||
ifeq ($(debug), yes)
|
||||
ADDITIONAL_LDFLAGS = -lFoundationExt_d
|
||||
ADDITIONAL_LDFLAGS = -lFoundationExt_d -lxml -lz
|
||||
else
|
||||
ADDITIONAL_LDFLAGS = -lFoundationExt
|
||||
ADDITIONAL_LDFLAGS = -lFoundationExt -lxml -lz
|
||||
endif
|
||||
|
||||
# Additional library directories the linker should search
|
||||
|
|
|
@ -2,3 +2,4 @@
|
|||
#
|
||||
#
|
||||
DYNAMIC_LINKER=simple
|
||||
#GDL2=yes
|
||||
|
|
Loading…
Reference in a new issue