2010-01-21 10 views
8

Ho letto di Relaxer, la cosa che compila le classi .RNG in Java. BBut il sito web, http://www.relaxer.org/, è morto.Esiste un Rilassatore per .NET? Relaxer è vivo? RelaxNG è praticabile?

Q1:
Relaxer è vivo? È vero, funziona? È ragionevole generare classi Java da .RNG?

Q2:
Esiste un Rilassatore per .NET? Esiste uno strumento che genera classi C# dallo schema RelaxNG?

Q3: C'è un relax per Javascript?

E, infine

Q4:
è RelaxNG vivo? È praticabile? Rilevante e utile nel mondo REST/JSON? La gente la usa ancora o sta per svanire, una buona idea che è stata abbandonata? So che è soggettivo, ma mi piacerebbe conoscere la tua valutazione. Vedo solo 9 o 10 RelaxNG Q su stackoverflow, quindi metto in discussione l'importanza di questa tecnologia. Se no RelaxNG, allora cosa? WADL? Niente?


Vedere Maintaining Consistency Between JavaScript and C# Object Models per una domanda correlata.

risposta

2

Piuttosto che lasciare questa domanda qui fuori senza risposta per sempre, e andando avanti la teoria che nessuna risposta a tutti è in realtà una risposta abbastanza definitiva, ho intenzione di fornire una risposta me stesso.

Le risposte:

  1. No, per tutte le indicazioni, Relaxer non è vivo.

  2. Non c'è Relaxer per NET

  3. Non c'è Relaxer per Javascript

  4. RelaxNG è apparentemente anche morto ancora in vita, solo guardando deadish come è stabile, ma è utilizzato parecchio come alternativa a XSD. Una recente aggiunta è stata RelaxNG validation in Saxon for XQuery and XSLT fatta da Charles Foster.

  5. Ci sono un sacco di alternative per la convalida di RelaxNG in .NET, come menzionato nei commenti e nella risposta di Martin.

+1

Ho utilizzato con successo Tenuto come validatore di RelaxNG per .NET. È elencato qui: http: //www.relaxng.org/ –

+1

Per quello che vale, Trang sembra fare molto di ciò che ha fatto Relaxer, ed è attivamente mantenuto: http://code.google.com/p/jing-trang/ – Tao

+1

Ho una specifica per uno schema di messaggio scritto in formato RelaxNG Compact che devo convertire in XSD. Si cura la gente. ftp://medical.nema.org/medical/dicom/final/sup95_ft.pdf – bleepzter

8

Basta usare Mono's RelaxngValidatingReader.

Ho creato uno NuGet Package compilando lo Mono Commons.Xml.Relaxng project.

PS: lo uso in produzione per alcuni progetti AlpineBits.

XmlReader instance = new XmlTextReader ("instance.xml"); 
XmlReader grammar = new XmlTextReader ("grammar.rng"); 
using (RelaxngValidatingReader reader = new RelaxngValidatingReader (instance, grammar)) { 
    try { 
     while (!reader.EOF) { 
      reader.Read(); 
     } 
     Console.WriteLine("validation succeeded"); 
    } 
    catch (Exception ex) { 
     Console.WriteLine("validation failed with message:"); 
     Console.WriteLine(ex.Message); 
    } 
} 
+0

Qualche documentazione per il progetto? Ti piace come usarlo? In 'Documentation/it' vedo una documentazione XML, ma esiste una versione renderizzata (HTML)? –

+0

@FranklinYu Aggiunto un semplice esempio su come convalidare un file xml. Vedi anche [unit test] (https://github.com/mono/mono/blob/master/mcs/class/Commons.Xml.Relaxng/Test/RelaxngValidatingReaderTests.cs) nel repository mono. –

+0

Grazie. Ho pensato che ci fosse qualche documentazione di 'Commons.Xml.Relaxng' disponibile online, dato che c'è [uno per la maggior parte delle parti di Mono] (http://docs.go-mono.com/). Continuo a pensare che qualche documentazione migliorerebbe, e potrei provare ad aggiungerla nel repository mono tramite la richiesta pull. (O magari chiedere in [mailing list] (https://lists.dot.net/mailman/listinfo/mono-docs-list).) –