Проверка схемы XSD в Ruby

Также найденный этот разговор с Anders Hejlsberg, который может быть интересным также. Для суммирования точек, которые Anders Hejlsberg сделал с некоторыми дополнительными примечаниями: дженерики Java были сделаны для максимальной совместимости с существующим JVM, который привел к немногим нечетным вещам по сравнению с реализацией, которую Вы видите в C#:

  • стирание Типа вынуждает реализацию представить каждое универсальное параметрическое значение как Object. В то время как компилятор обеспечивает автоматические броски между Object и более определенный тип, он не удаляет негативное воздействие бросков типа и упаковывающий на производительности (например, Object брошен к определенному типу MyClass, или int должен был быть упакован в Integer, который был бы еще более серьезным для C#/.NET, если бы они следовали за подходом стирания типа из-за пользовательских типов значения). Поскольку Anders сказал: "Вы не получаете ни одной эффективности выполнения" (который овеществленные дженерики включают в C#)

  • , стирание Типа делает информацию доступной во время компиляции не доступный во время времени выполнения . Что-то, что раньше было List, становится просто List без способа восстановить универсальный параметр типа во времени выполнения. Это делает трудным создать отражательные или динамические сценарии генерации кода вокруг дженериков Java. Более свежий ТАК ответ шоу путь вокруг этого через анонимные классы. Но без приемов, что-то как генерация кода во времени выполнения через отражение, которое получает элементы от одного экземпляра набора и помещает его в другой экземпляр набора, может перестать работать во времени выполнения во время выполнения динамично сгенерированного кода: отражение не помогает с ловлей несоответствия в List по сравнению с List в этих ситуациях.

, Но +1 для ответа, связывающегося с Jonathan Pryor сообщение в блоге .

6
задан Bryan Ward 8 September 2009 в 22:53
поделиться

2 ответа

Поскольку схемы сами являются XML-документами, вы можете проверить их, как любой другой документ. И XSD, и DTD для XML-схемы можно найти на этом сайте http://www.w3.org/2001/XMLSchema .

4
ответ дан 8 December 2019 в 18:39
поделиться

Вы можете использовать Nokogiri для этого:

begin
  schema = Nokogiri::XML::Schema(File.read('invalid_schema.xsd'))
rescue Nokogiri::XML::SyntaxError => e
  puts "Invalid XML Schema!"
end
9
ответ дан 8 December 2019 в 18:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: