www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Can we keep std.xml : encode, decode ?

reply WebFreak001 <d.forum webfreak.org> writes:
Whenever operating with any XML files, even if not using the 
std.xml API, I very often use encode/decode to insert strings 
into fixed file templates.

I think a lot of people will have used and still use these APIs 
because they are in the standard library and very trivial short 
implementations you can expect to exist. I think for these two 
small functions pulling in a dub library is overkill and often 
will not work well for script-like D files.

`std.xml` is being removed for being considered "out-dated and 
not up to Phobos' current standards", however I believe the 
encode/decode functions are close enough to the current standards 
or can be fairly easily modified or reimplemented to meet them.

I believe putting the XML parser, DOM & serializer from std.xml 
into undeaD is a good idea, however I think the very basic string 
utilities that many more programs might use should stay in.

For example currently some simple script that is called in a 
cronjob could be used to automatically generate a static HTML 
file given some input from some other program:

import std.conv;
import std.stdio;
import std.xml : encode;

void main(string[] args)
{
	writeln("<!DOCTYPE html><html>");
	writeln("<head><title>Auto generated site</title></head>");
	writeln("<body>");
	writeln(`<h1 title="`, args.to!string.encode, `">`);
	writeln("Last call: ", args.to!string.encode);
	writeln("</h1>");
	writeln("</body></html>");
}
Jul 20 2020
parent reply bauss <jj_1337 live.dk> writes:
On Monday, 20 July 2020 at 14:04:57 UTC, WebFreak001 wrote:
 Whenever operating with any XML files, even if not using the 
 std.xml API, I very often use encode/decode to insert strings 
 into fixed file templates.

 I think a lot of people will have used and still use these APIs 
 because they are in the standard library and very trivial short 
 implementations you can expect to exist. I think for these two 
 small functions pulling in a dub library is overkill and often 
 will not work well for script-like D files.

 `std.xml` is being removed for being considered "out-dated and 
 not up to Phobos' current standards", however I believe the 
 encode/decode functions are close enough to the current 
 standards or can be fairly easily modified or reimplemented to 
 meet them.

 I believe putting the XML parser, DOM & serializer from std.xml 
 into undeaD is a good idea, however I think the very basic 
 string utilities that many more programs might use should stay 
 in.

 For example currently some simple script that is called in a 
 cronjob could be used to automatically generate a static HTML 
 file given some input from some other program:

 import std.conv;
 import std.stdio;
 import std.xml : encode;

 void main(string[] args)
 {
 	writeln("<!DOCTYPE html><html>");
 	writeln("<head><title>Auto generated site</title></head>");
 	writeln("<body>");
 	writeln(`<h1 title="`, args.to!string.encode, `">`);
 	writeln("Last call: ", args.to!string.encode);
 	writeln("</h1>");
 	writeln("</body></html>");
 }
We should really just have something like std.dom which would contain things like that.
Jul 21 2020
parent WebFreak001 <d.forum webfreak.org> writes:
On Tuesday, 21 July 2020 at 07:55:25 UTC, bauss wrote:
 On Monday, 20 July 2020 at 14:04:57 UTC, WebFreak001 wrote:
 [...]
We should really just have something like std.dom which would contain things like that.
for a future API std.dom might make sense, also to replace the current std.xml API, but I would really like to keep std.xml : encode, decode! (which std.dom could use then too)
Jul 31 2020