Kateri programski jezik?

Problemi z drugimi jeziki kot so c++, cgi, java, itd.
gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

Kateri programski jezik?

Odgovor Napisal/-a gabr » 01.04.2009 07:52:52

V roke mi je prišla neka čudna koda, pa zaboga ne znam zgruntat, v kakšnem programskem jeziku je to napisano. Mi zna kdo pomagat?

Koda: Izberi vse

  xmlWsdl := CreateFluentXml
    .AddProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"')
    .AddChild('definitions')
      ['xmlns',           'http://schemas.xmlsoap.org/wsdl/']
      ['xmlns:xs',        'http://www.w3.org/2001/XMLSchema']
      ['xmlns:soap',      'http://schemas.xmlsoap.org/wsdl/soap/']
      ['xmlns:soapenc',   'http://schemas.xmlsoap.org/soap/encoding/']
      ['xmlns:mime',      'http://schemas.xmlsoap.org/wsdl/mime/']
      ['name',            serviceName]
      ['xmlns:ns1',       'urn:' + intfName]
      ['xmlns:fs',        'http://tempfs.com/soap/']
      ['targetNamespace', 'http://tempfs.com/soap/']
      .AddChild('message')['name', 'fs:' + baseName + 'Request'].Anchor(nodeRequest)
      .AddSibling('message')['name', 'fs:' + baseName + 'Response'].Anchor(nodeResponse)
      .AddSibling('portType')['name', baseName]
      .Here
        .AddChild('operation')['name', baseName]
          .AddChild('input')['message', 'fs:' + baseName + 'Request']
          .AddSibling('output')['message', 'fs:' + baseName + 'Response']
      .Back
      .AddSibling('binding')
      .Here
        ['name', bindingName]
        ['type', 'fs:' + intfName]
        .AddChild('soap:binding')
          ['style', 'rpc']
          ['transport', 'http://schemas.xmlsoap.og/soap/http']
          .AddChild('operation')['name', baseName]
            .AddChild('soap:operation')
              ['soapAction', 'urn:' + baseName]
              ['style', 'rpc']
            .AddSibling('input')
              .AddChild('soap:body')
                ['use', 'encoded']
                ['encodingStyle', 'http://schemas.xmlsoap.org/soap/encoding/']
                ['namespace', 'urn:' + intfName + '-' + baseName]
              .Parent
            .AddSibling('output')
            .AddChild('soap:body')
              ['use', 'encoded']
              ['encodingStyle', 'http://schemas.xmlsoap.org/soap/encoding/']
              ['namespace', 'urn:' + intfName + '-' + baseName]
      .Back
      .AddSibling('service')['name', serviceName]
        .AddChild('port')
          ['name', portName]
          ['binding', 'fs:' + bindingName]
          .AddChild('soap:address')['location', serviceLocation];

peterv
Prispevkov: 987
Pridružen: 29.03.2002 13:24:32

Kateri programski jezik?

Odgovor Napisal/-a peterv » 01.04.2009 08:32:23

kaj samo ta del kode imaš?

mig640
Prispevkov: 59
Pridružen: 03.01.2008 11:36:54

Kateri programski jezik?

Odgovor Napisal/-a mig640 » 01.04.2009 09:12:46


gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

Kateri programski jezik?

Odgovor Napisal/-a gabr » 02.04.2009 00:01:58

No, prvi april je mimo, pa lahko povem. Delphi, seveda.

Problem je pravilno rešil aoven že takoj zjutraj (pa tudi umaknil post - al ga je pa moderator zbrisal, jaz ga nisem). Ampak kaj, ko drugi samo lenarite :)

Malo več na to temo: Fluent XML.

aoven
Prispevkov: 2338
Pridružen: 27.06.2001 23:56:07

Kateri programski jezik?

Odgovor Napisal/-a aoven » 02.04.2009 02:04:25

Eh, verjetno sem res ravno dovolj pokvaril foro, da potem ni bilo več odziva. Sem sicer Lee-ja takoj prosil, da post zbriše, ampak nekaj časa je pa vseeno bil gor. Mea culpa. :)

BTW: Če bi hotel še malo bolj zamaskirat pravo poreklo kode, bi lahko uporabil kakšnega od bolj obskurnih, a veljavnih konstruktov. Recimo (. .) namesto [ ], ali pa & prefiks pri imenih property-jev in metod:

Koda: Izberi vse

&CreateFluentXml.
  &AddProcessingInstruction('xml', 'version="1.0" encoding="UTF-8"').
  &AddChild('definitions')
    (.'xmlns', 'http://schemas.xmlsoap.org/wsdl/'.)
  // And so on...
Tole zgleda še malo bolj alien. :)

Aleksander

gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

Kateri programski jezik?

Odgovor Napisal/-a gabr » 02.04.2009 08:39:18

BTW: Če bi hotel še malo bolj zamaskirat pravo poreklo kode, bi lahko uporabil kakšnega od bolj obskurnih, a veljavnih konstruktov. Recimo (. .) namesto [ ], ali pa & prefiks pri imenih property-jev in metod:
...
Tole zgleda še malo bolj alien. :)
Res je :) Ampak meni se je že to poljubno nizanje oglatih oklepajev zdelo popolnoma ne-Delphijevsko.

Gp

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Kateri programski jezik?

Odgovor Napisal/-a Runner » 02.04.2009 10:49:36

Sintaksa je res nora in odličen primer tega kaj vse se da narediti z delphi-jem. Je pa malce vprašljiva splošna uporabnost tega pristopa. No vsekakor za pisanje XML-jev v kodi, kar je bil verjetno tvoj primarni namen, ter da ohraniš preglednost in strukturiranost XML dokumenta. Za kaj več pa verjetno težko.

gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

Kateri programski jezik?

Odgovor Napisal/-a gabr » 02.04.2009 10:53:58

Ja, primarni namen je kreiranje XML v kodi. Vsaj tistega 'template' dela, ki se nikoli ne spreminja. Na poljubnih mestih si lahko namreč 'zapomniš' trenutno aktivni node in potem programsko (z zankami itd) vanj zapišeš karkoli. Tako da se da kombinirat rokodelski in programerski pristop.

gabr
Prispevkov: 4129
Pridružen: 28.08.2001 14:10:47

Kateri programski jezik?

Odgovor Napisal/-a gabr » 02.04.2009 10:55:32

Sintaksa je vsem všeč. Da se pohvalim - NickH je na svojem blogu zapisal: "Sometimes someone writes some code that is so lovely that you just have to point it out to folks."

Se moram prav pohvalit, se mi tako dobro zdi :))

Uporabniški avatar
Runner
Prispevkov: 1079
Pridružen: 03.02.2005 12:05:25

Kateri programski jezik?

Odgovor Napisal/-a Runner » 02.04.2009 11:00:37

Na poljubnih mestih si lahko namreč 'zapomniš' trenutno aktivni node in potem programsko (z zankami itd) vanj zapišeš karkoli
Ah seveda, na to pa nisem pomislil. Zanimive situacije so se mi pričele prikazovati :)

Odgovori