[Java] XML syntax check tool.

Pagina: 1
Acties:

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik ben nu al een week bezig met XML en ben er uitermate tevreden over. Ik ben op dit moment bezig met een DTD op te stellen. Maar waarmee kan ik controleren of mijn DTD syntactisch correct is en voor het XML bestand (dat deze DTD nodig heeft) ook. Is hier misschien een commandline tool voor? (Liefst een java tool, omdat ik hem dan ook onder linux kan gebruiken).

Verwijderd

Weet niet zo heel veel van XML (verschil tussen parsen en validaten enzo is me wat wazig) maar zit dat niet bij Xerces in?

http://xml.apache.org/

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik gebruik inderdaad ook gewoon een XML parser (Xerces) om DTDs te checken. Eigenlijk zijn DTDs pokkedingen omdat ze gaan XML syntax hebben. XML Schema is wat dat betreft een betere keuze, maar wel iets complexer om in te stappen.

XML editors zullen vast wel DTDs kunnen controleren.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Maar kun je xerces ook als stand alone xml parser gebruiken ipv hem in een programma in te bouwen?

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik gebruik dit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.io.File;
import java.net.URL;
import javax.xml.parsers.*;

import org.jdom.input.SAXBuilder;

public class Validate
{
    public static void main(String[] ps)
    {
        try
        {
            if(ps.length != 2)
            {
                printUsage();
                return;
            }

            SAXBuilder builder = new SAXBuilder();
            URL url;

            if(ps[0].equals("-file"))
            {
                url = new File(ps[1]).toURL();
            }
            else if(ps[1].equals("-url"))
            {
                url = new URL(ps[1]);
            }
            else
            {
                printUsage();
                return;
            }

            builder.build(url.openStream());
        }
        catch(Exception exc)
        {
            exc.printStackTrace();
        }
    }

    private static void printUsage()
    {
        System.out.println("Usage: java Validate ( -file | -url ) <xml-file-location>");
    }
}

Ik gebruik een DOM omdat SAX soms niet alles kan valideren. Alleen even zorgen dat jdom en xerces in je classpath staan :) .

Volgens mij kan je trouwens ook direct Xerces gebruiken als stand-alone tool.

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum, je kunt zien dat ik die url nooit gebruikt, daar moet ps namelijk een 0 zijn in de conditie ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Bedankt! heb namelijk geen zin om een editor te gebruiken omdat je dan weer te veel dingen automatisch laat doen en dat is niet goed voor inzicht :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Hum ik doe hier trouwens iets heel erg doms |:( |:( Ik bouw wel een DOM, maar de parser werkt gewoon met SAX. Erg dom dus |:( .

Als je er een DOMBuilder van maakt werkt het zoals ik wilde bereiken. Het maakt verder niet echt erg veel uit hoor :) . De overhead van JDOM is dan wel wat overbodig, maar ja, JDOM build zo lekker makkelijk :P .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
dit is makkelijk tooltje, want de boodschappen die ken je. Dit werkt echt goed. thanx.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Mooi en graag gedaan :) .

Toch leuk als je met zoiets simpels mensen al blij kan maken. Zal ik het op Sourceforge zetten? ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik denk dat we hier zeker wel een cvs systeem voor kunnen gebruiken :)
Pagina: 1