Will Neobook 6 use XML format for the Pub ?

Post your suggestions for future versions of NeoBook

Moderator: Neosoft Support

Locked
Luiz Alfredo
Posts: 198
Joined: Thu Apr 19, 2007 6:58 am
Location: Brazil

Will Neobook 6 use XML format for the Pub ?

Post by Luiz Alfredo »

Will Neobook 6 use XML format for the Pub ?

Don't you think it will be good for many purposes ?
L.A.G.M.
User avatar
HPW
Posts: 2571
Joined: Fri Apr 01, 2005 11:24 pm
Location: Germany
Contact:

Re: Will Neobook 6 use XML format for the Pub ?

Post by HPW »

Hello,

For what purposes should it be good?

The size will grow.
Is it more readable for humans?
So where is the benefit?

Regards,
Hans-Peter
Luiz Alfredo
Posts: 198
Joined: Thu Apr 19, 2007 6:58 am
Location: Brazil

Re: Will Neobook 6 use XML format for the Pub ?

Post by Luiz Alfredo »

Some considerations:

- I think the size will not grow too much.
- The code will be better organized.
- Many tools are available for XML format.
- Human-readable and machine-readable (Specially for large Pubs).
- Free Open Standard.
- Great support to Unicode.
- More possibilities of Neobook5 (NeoRAD5) Support Applications as XML is widely used.
- XML-based formats have become the default for many tools.
- Once converted the new Pubs could be Edited/Processed by many tools, and even Produced/Generated for Validation/Compilation by Neobook.
- And much more, as I remembered only this topics.

Our interest is that we can have Neobook's Concept and Quality for the creation of one of the best tools for Applications Creation. Excuse me Dave if I'm wrong. Just an idea.
L.A.G.M.
User avatar
dpayer
Posts: 1394
Joined: Mon Apr 11, 2005 5:55 am
Location: Iowa - USA

Re: Will Neobook 6 use XML format for the Pub ?

Post by dpayer »

HPW wrote:Hello,

For what purposes should it be good?

The size will grow.
Is it more readable for humans?
So where is the benefit?

Regards,

The size 'may' grow by 5-10% (to accommodate the element names and brackets).

It will be 100% more readable by humans and therefore modifiable without using the IDE to make bulk changes to code (so you could customize a text object used as a label and copy that section into the xml easier for bulk compilations).

Pre-parsing of the object/page/code info into XML would open an easier pathway for converting a pub to an HTML5 document or other format of documents (future possibility of NB development - some genius will have to work on a NB script to JScript converter for that one to happen!).

It would give a reason in Neobook V.6 to switching the .pub extension to a new name like .pubXML so NB no longer associates with .pub and confuses things when you have Microsoft Publisher on your system (I'm sure legacy .pub files could be imported).

The big issue is if it helps the developer of the Neobook application itself to organize the data used by the IDE. Using XML is making all content of a pub fit into a structured database (XML). I can think of many advantages to doing that from my view. I am sure there are many considerations in making a document format change though.

David P.
David Payer
Des Moines, Iowa
USA
Neosoft Support
NeoSoft Team
Posts: 5628
Joined: Thu Mar 31, 2005 10:48 pm
Location: Oregon, USA
Contact:

Re: Will Neobook 6 use XML format for the Pub ?

Post by Neosoft Support »

Actually, v6 will use XML for storage of pub contents. The file extension will be different too - although the specific extension hasn't been decided yet. An import feature for the current .pub format will be available.
NeoSoft Support
User avatar
bunker
Posts: 141
Joined: Sat Sep 29, 2007 4:00 pm

Re: Will Neobook 6 use XML format for the Pub ?

Post by bunker »

just asking have you considered Json?

Json
[syntax=javascript]{"web-app": {
"servlet": [
{
"servlet-name": "cofaxCDS",
"servlet-class": "org.cofax.cds.CDSServlet",
"init-param": {
"configGlossary:installationAt": "Philadelphia, PA",
"configGlossary:adminEmail": "ksm@pobox.com",
"configGlossary:poweredBy": "Cofax",
"configGlossary:poweredByIcon": "/images/cofax.gif",
"configGlossary:staticPath": "/content/static",
"templateProcessorClass": "org.cofax.WysiwygTemplate",
"templateLoaderClass": "org.cofax.FilesTemplateLoader",
"templatePath": "templates",
"templateOverridePath": "",
"defaultListTemplate": "listTemplate.htm",
"defaultFileTemplate": "articleTemplate.htm",
"useJSP": false,
"jspListTemplate": "listTemplate.jsp",
"jspFileTemplate": "articleTemplate.jsp",
"cachePackageTagsTrack": 200,
"cachePackageTagsStore": 200,
"cachePackageTagsRefresh": 60,
"cacheTemplatesTrack": 100,
"cacheTemplatesStore": 50,
"cacheTemplatesRefresh": 15,
"cachePagesTrack": 200,
"cachePagesStore": 100,
"cachePagesRefresh": 10,
"cachePagesDirtyRead": 10,
"searchEngineListTemplate": "forSearchEnginesList.htm",
"searchEngineFileTemplate": "forSearchEngines.htm",
"searchEngineRobotsDb": "WEB-INF/robots.db",
"useDataStore": true,
"dataStoreClass": "org.cofax.SqlDataStore",
"redirectionClass": "org.cofax.SqlRedirection",
"dataStoreName": "cofax",
"dataStoreDriver": "com.microsoft.jdbc.sqlserver.SQLServerDriver",
"dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon",
"dataStoreUser": "sa",
"dataStorePassword": "dataStoreTestQuery",
"dataStoreTestQuery": "SET NOCOUNT ON;select test='test';",
"dataStoreLogFile": "/usr/local/tomcat/logs/datastore.log",
"dataStoreInitConns": 10,
"dataStoreMaxConns": 100,
"dataStoreConnUsageLimit": 100,
"dataStoreLogLevel": "debug",
"maxUrlLength": 500}},
{
"servlet-name": "cofaxEmail",
"servlet-class": "org.cofax.cds.EmailServlet",
"init-param": {
"mailHost": "mail1",
"mailHostOverride": "mail2"}},
{
"servlet-name": "cofaxAdmin",
"servlet-class": "org.cofax.cds.AdminServlet"},

{
"servlet-name": "fileServlet",
"servlet-class": "org.cofax.cds.FileServlet"},
{
"servlet-name": "cofaxTools",
"servlet-class": "org.cofax.cms.CofaxToolsServlet",
"init-param": {
"templatePath": "toolstemplates/",
"log": 1,
"logLocation": "/usr/local/tomcat/logs/CofaxTools.log",
"logMaxSize": "",
"dataLog": 1,
"dataLogLocation": "/usr/local/tomcat/logs/dataLog.log",
"dataLogMaxSize": "",
"removePageCache": "/content/admin/remove?cache=pages&id=",
"removeTemplateCache": "/content/admin/remove?cache=templates&id=",
"fileTransferFolder": "/usr/local/tomcat/webapps/content/fileTransferFolder",
"lookInContext": 1,
"adminGroupID": 4,
"betaServer": true}}],
"servlet-mapping": {
"cofaxCDS": "/",
"cofaxEmail": "/cofaxutil/aemail/*",
"cofaxAdmin": "/admin/*",
"fileServlet": "/static/*",
"cofaxTools": "/tools/*"},

"taglib": {
"taglib-uri": "cofax.tld",
"taglib-location": "/WEB-INF/tlds/cofax.tld"}}}[/syntax]

Now see the XML:
[syntax=xml]<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2.2.dtd">
<web-app>
<servlet>
<servlet-name>
cofaxCDS
</servlet-name>
<servlet-class>
org.cofax.cds.CDSServlet
</servlet-class>

<init-param>
<param-name>configGlossary:installationAt</param-name>
<param-value>Philadelphia, PA</param-value>
</init-param>
<init-param>
<param-name>configGlossary:adminEmail</param-name>
<param-value>ksm@pobox.com</param-value>
</init-param>
<init-param>
<param-name>configGlossary:poweredBy</param-name>
<param-value>Cofax</param-value>
</init-param>
<init-param>
<param-name>configGlossary:poweredByIcon</param-name>
<param-value>/images/cofax.gif</param-value>
</init-param>
<init-param>
<param-name>configGlossary:staticPath</param-name>
<param-value>/content/static</param-value>
</init-param>

<init-param>
<param-name>templateProcessorClass</param-name>
<param-value>org.cofax.WysiwygTemplate</param-value>
</init-param>

<init-param>
<param-name>templateLoaderClass</param-name>
<param-value>org.cofax.FilesTemplateLoader</param-value>
</init-param>

<init-param>
<param-name>templatePath</param-name>
<param-value>templates</param-value>
</init-param>

<init-param>
<param-name>templateOverridePath</param-name>
<param-value></param-value>
</init-param>

<init-param>
<param-name>defaultListTemplate</param-name>
<param-value>listTemplate.htm</param-value>
</init-param>

<init-param>
<param-name>defaultFileTemplate</param-name>
<param-value>articleTemplate.htm</param-value>
</init-param>

<init-param>
<param-name>useJSP</param-name>
<param-value>false</param-value>
</init-param>

<init-param>
<param-name>jspListTemplate</param-name>
<param-value>listTemplate.jsp</param-value>
</init-param>

<init-param>
<param-name>jspFileTemplate</param-name>
<param-value>articleTemplate.jsp</param-value>
</init-param>

<init-param>
<param-name>cachePackageTagsTrack</param-name>
<param-value>200</param-value>
</init-param>

<init-param>
<param-name>cachePackageTagsStore</param-name>
<param-value>200</param-value>
</init-param>

<init-param>
<param-name>cachePackageTagsRefresh</param-name>
<param-value>60</param-value>
</init-param>

<init-param>
<param-name>cacheTemplatesTrack</param-name>
<param-value>100</param-value>
</init-param>

<init-param>
<param-name>cacheTemplatesStore</param-name>
<param-value>50</param-value>
</init-param>

<init-param>
<param-name>cacheTemplatesRefresh</param-name>
<param-value>15</param-value>
</init-param>

<init-param>
<param-name>cachePagesTrack</param-name>
<param-value>200</param-value>
</init-param>

<init-param>
<param-name>cachePagesStore</param-name>
<param-value>100</param-value>
</init-param>

<init-param>
<param-name>cachePagesRefresh</param-name>
<param-value>10</param-value>
</init-param>

<init-param>
<param-name>cachePagesDirtyRead</param-name>
<param-value>10</param-value>
</init-param>

<init-param>
<param-name>searchEngineListTemplate</param-name>
<param-value>forSearchEnginesList.htm</param-value>
</init-param>

<init-param>
<param-name>searchEngineFileTemplate</param-name>
<param-value>forSearchEngines.htm</param-value>
</init-param>

<init-param>
<param-name>searchEngineRobotsDb</param-name>
<param-value>WEB-INF/robots.db</param-value>
</init-param>

<init-param>
<param-name>useDataStore</param-name>
<param-value>true</param-value>
</init-param>

<init-param>
<param-name>dataStoreClass</param-name>
<param-value>org.cofax.SqlDataStore</param-value>
</init-param>

<init-param>
<param-name>redirectionClass</param-name>
<param-value>org.cofax.SqlRedirection</param-value>
</init-param>
<init-param>
<param-name>dataStoreName</param-name>
<param-value>cofax</param-value>
</init-param>

<init-param>
<param-name>dataStoreDriver</param-name>
<param-value>com.microsoft.jdbc.sqlserver.SQLServerDriver</param-value>
</init-param>

<init-param>
<param-name>dataStoreUrl</param-name>
<param-value>jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon</param-value>
</init-param>

<init-param>
<param-name>dataStoreUser</param-name>
<param-value>sa</param-value>
</init-param>

<init-param>
<param-name>dataStorePassword</param-name>
<param-value></param-value>
</init-param>

<init-param>
<param-name>dataStoreTestQuery</param-name>
<param-value>SET NOCOUNT ON;select test='test';</param-value>
</init-param>

<init-param>
<param-name>dataStoreLogFile</param-name>
<param-value>/usr/local/tomcat/logs/datastore.log</param-value>
</init-param>

<init-param>
<param-name>dataStoreInitConns</param-name>
<param-value>10</param-value>
</init-param>

<init-param>
<param-name>dataStoreMaxConns</param-name>
<param-value>100</param-value>
</init-param>

<init-param>
<param-name>dataStoreConnUsageLimit</param-name>
<param-value>100</param-value>
</init-param>
<init-param>
<param-name>dataStoreLogLevel</param-name>
<param-value>debug</param-value>
</init-param>

<init-param>
<param-name>maxUrlLength</param-name>
<param-value>500</param-value>
</init-param>

</servlet>

<servlet>
<servlet-name>
cofaxEmail
</servlet-name>
<servlet-class>
org.cofax.cds.EmailServlet
</servlet-class>

<init-param>
<param-name>mailHost</param-name>
<param-value>mail1</param-value>
</init-param>

<init-param>
<param-name>mailHostOverride</param-name>
<param-value>mail2</param-value>
</init-param>
</servlet>

<servlet>
<servlet-name>
cofaxAdmin
</servlet-name>
<servlet-class>
org.cofax.cds.AdminServlet
</servlet-class>
</servlet>

<servlet>
<servlet-name>
fileServlet
</servlet-name>
<servlet-class>
org.cofax.cds.FileServlet
</servlet-class>
</servlet>

<servlet>
<servlet-name>
cofaxTools
</servlet-name>
<servlet-class>
org.cofax.cms.CofaxToolsServlet
</servlet-class>

<init-param>
<param-name>templatePath</param-name>
<param-value>toolstemplates/</param-value>
</init-param>

<init-param>
<param-name>log</param-name>
<param-value>1</param-value>
</init-param>

<init-param>
<param-name>logLocation</param-name>
<param-value>/usr/local/tomcat/logs/CofaxTools.log</param-value>
</init-param>

<init-param>
<param-name>logMaxSize</param-name>
<param-value></param-value>
</init-param>

<init-param>
<param-name>dataLog</param-name>
<param-value>1</param-value>
</init-param>

<init-param>
<param-name>dataLogLocation</param-name>
<param-value>/usr/local/tomcat/logs/dataLog.log</param-value>
</init-param>

<init-param>
<param-name>dataLogMaxSize</param-name>
<param-value></param-value>
</init-param>

<init-param>
<param-name>removePageCache</param-name>
<param-value>/content/admin/remove?cache=pages&id=</param-value>
</init-param>

<init-param>
<param-name>removeTemplateCache</param-name>
<param-value>/content/admin/remove?cache=templates&id=</param-value>
</init-param>

<init-param>
<param-name>fileTransferFolder</param-name>
<param-value>/usr/local/tomcat/webapps/content/fileTransferFolder</param-value>
</init-param>

<init-param>
<param-name>lookInContext</param-name>
<param-value>1</param-value>
</init-param>

<init-param>
<param-name>adminGroupID</param-name>
<param-value>4</param-value>
</init-param>

<init-param>
<param-name>betaServer</param-name>
<param-value>true</param-value>
</init-param>

</servlet>

<servlet-mapping>
<servlet-name>
cofaxCDS
</servlet-name>
<url-pattern>
/
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>
cofaxEmail
</servlet-name>
<url-pattern>
/cofaxutil/aemail/*
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>
cofaxAdmin
</servlet-name>
<url-pattern>
/admin/*
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>
fileServlet
</servlet-name>
<url-pattern>
/static/*
</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>
cofaxTools
</servlet-name>
<url-pattern>
/tools/*
</url-pattern>
</servlet-mapping>

<taglib>
<taglib-uri>cofax.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/cofax.tld</taglib-location>
</taglib>

</web-app>[/syntax]
Neosoft Support
NeoSoft Team
Posts: 5628
Joined: Thu Mar 31, 2005 10:48 pm
Location: Oregon, USA
Contact:

Re: Will Neobook 6 use XML format for the Pub ?

Post by Neosoft Support »

I hadn't considered JSON thinking it was primarily a web/Java format, but it could work too. Each format has its strengths and weaknesses.
NeoSoft Support
User avatar
Gaev
Posts: 3782
Joined: Fri Apr 01, 2005 7:48 am
Location: Toronto, Canada
Contact:

Re: Will Neobook 6 use XML format for the Pub ?

Post by Gaev »

Here is my 2 cents worth ...

1) xml is more powerful than json ... but I think a pub can be defined with json quite easily

2) working with json is easier

3) facilities (tools) to work with json are more readily available ... vanilla javascript is all you need (so theoretically, you could build a NeoBook Publication using another NeoBook Publication with Javascript functions !!!)

4) from what I have seen, json is more popular with api's and NoSQL type of database access ... most cloud services I have explored use json primarily (or exclusively).

... so overall i think that providing a facility to store a pub's definition in json would provide a lot of benefits.
Luiz Alfredo
Posts: 198
Joined: Thu Apr 19, 2007 6:58 am
Location: Brazil

Re: Will Neobook 6 use XML format for the Pub ?

Post by Luiz Alfredo »

I do prefer XML. Very much documentation and tools.
L.A.G.M.
Locked