2010-01-21 3 views
8

Я читал о Relaxer, том, что компилирует классы .RNG для Java. BBut сайт, http://www.relaxer.org/, мертв.Есть релаксер для .NET? Релаксер жив? Является ли RelaxNG жизнеспособным?

Q1:
Релаксер жив? Действительно ли это работает? Разумно ли генерировать классы Java из .RNG?

Q2:
Есть ли Relaxer для .NET? Есть ли инструмент, который генерирует классы C# из схемы RelaxNG?

Q3: Есть ли релаксер для Javascript?

И, наконец

Q4:
ли RelaxNG жив? Это жизнеспособно? Релевантно и полезно в мире REST/JSON? Люди все еще используют его или он собирается исчезнуть, хорошая идея, которая была отброшена? Я знаю, что это субъективно, но я бы хотел узнать вашу оценку. Я вижу только 9 или 10 RelaxNG Q в stackoverflow, поэтому я сомневаюсь в значимости этой технологии. Если не RelaxNG, то что? WADL? Ничего:?


См. Maintaining Consistency Between JavaScript and C# Object Models относительно вопроса.

ответ

2

Вместо того, чтобы этот вопрос болтался здесь без ответа и продолжал теорию о том, что ответа нет вообще на самом деле довольно окончательный ответ, я собираюсь дать ответ сам.

Ответы:

  1. Нет, по всем признакам, Relaxer нет в живых.

  2. Там нет Relaxer для .NET

  3. Там нет Relaxer для Javascript

  4. RelaxNG, по-видимому также мертв еще жив, просто глядя deadish, как она стабильна, но она используется довольно много как альтернатива XSD. Недавнее дополнение было RelaxNG validation in Saxon for XQuery and XSLT сделано Чарльзом Фостером.

  5. Есть несколько альтернатив для проверки RelaxNG в .NET, как указано в комментариях и ответе Мартина.

+1

Я успешно использовал Tenuto как валидатор RelaxNG для .NET. Он указан здесь: http: //www.relaxng.org/ –

+1

Для чего это стоит, Trang, похоже, делает много того, что сделал Relaxer, и активно поддерживается: http://code.google.com/p/jing-trang/ – Tao

+1

У меня есть спецификация для схемы сообщений, написанной в RelaxNG Compact формате, который я должен преобразовать в XSD. Да, люди заботятся. ftp://medical.nema.org/medical/dicom/final/sup95_ft.pdf – bleepzter

8

Просто используйте RelaxngValidatingReader от Mono.

Я составил NuGet Package, составив Mono Commons.Xml.Relaxng project.

PS: Я использую это в производстве для некоторых проектов 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

Любая документация для проекта? Как его использовать? В 'Documentation/en' я вижу некоторую документацию XML, но есть ли отображаемая (HTML) версия? –

+0

@FranklinYu Добавлен простой пример проверки файла xml. Также см. [Unit tests] (https://github.com/mono/mono/blob/master/mcs/class/Commons.Xml.Relaxng/Test/RelaxngValidatingReaderTests.cs) в монохранилище. –

+0

Спасибо. Я подумал, что есть некоторая документация в Commons.Xml.Relaxng, доступная онлайн, так как есть [для большинства частей Mono] (http://docs.go-mono.com/). Я по-прежнему считаю, что некоторые документы улучшатся и могут попробовать добавить это в монорепозиторий через запрос на pull. (Или, возможно, спросите об этом в [списке рассылки] (https://lists.dot.net/mailman/listinfo/mono-docs-list).) –