Другое событие NullPointerException
возникает, когда объявляется массив объектов, а затем сразу же пытается разыменовать его внутри.
String[] phrases = new String[10];
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Этот конкретный NPE можно избежать, если порядок сравнения отменяется ; а именно, использовать .equals
для гарантированного непустого объекта.
Все элементы внутри массива инициализируются их общим начальным значением ; для любого типа массива объектов, это означает, что все элементы null
.
Вы должны инициализировать элементы в массиве перед доступом или разыменованием их.
String[] phrases = new String[] {"The bird", "A bird", "My bird", "Bird"};
String keyPhrase = "Bird";
for(String phrase : phrases) {
System.out.println(phrase.equals(keyPhrase));
}
Коммерческий продукт: Altova Шпион XML .
Примечание, что нет никакого общего решения этого. XSD может легко описать что-то, что не отображается на реляционную базу данных.
, В то время как можно попытаться "автоматизировать" это, XSD должен быть разработан с реляционной базой данных в памяти, или он не удастся хорошо.
, Если XSD имеет функции, которые не отображаются хорошо, Вы будете иметь к (1), разрабатывают отображение некоторого вида, и затем (2) пишут Ваше собственное приложение для перевода XSD в DDL.
там, сделанный это. Работа по найму - никакой доступный открытый исходный код.
Существует инструмент командной строки XSD2DB , который генерирует базу данных из xsd-файлов, доступных на sourceforge.
Я использую XSLT, чтобы сделать это. Опишите свой XSD, тогда передают Ваши модели данных через рукописный XSLT тот выходной SQL команды. Запись XSLT является путем, быстрее и допускающим повторное использование, чем пользовательская программа / сценарий, который можно записать.
, По крайней мере, это - то, как я делаю это на работе, и благодаря которому я заставил время болтаться на ТАК:)
XML-схемы описывают иерархические модели данных и могут плохо отображаться в реляционную модель данных. Сопоставление XSD с таблицами базы данных очень похоже на сопоставление объектов с таблицами базы данных, на самом деле вы можете использовать такую среду, как Castor, которая делает и то, и другое, она позволяет вам брать схему XML и генерировать классы, таблицы базы данных и код доступа к данным. Я полагаю, что сейчас есть много инструментов, которые делают то же самое, но будет кривая обучения, и сопоставления по умолчанию больше не будут соответствовать вашим ожиданиям, поэтому вам придется потратить время на настройку любого используемого вами инструмента.
XSLT может быть самым быстрым способом генерирования именно того кода, который вы хотите. Если это жесткое кодирование небольшой схемы, это может быть быстрее, чем оценка и использование множества новых технологий.
Создайте модель Java с помощью Axis wsdl2java (которая может принимать файлы .xsd).
Используйте инструмент создания базы данных для Java, который использует Java-модель. Конечно, что-то вроде Hibernate может сделать это? Я написал свой собственный инструмент (занимает пару дней, также генерирует код CRUD на Java), чтобы сэкономить время на работе, может быть, это был бы хороший личный проект?
Или просто сделать это вручную, чтобы вы можете проверить все правильно и хорошо! Инструменты базы данных теперь достаточно хороши, так что вы можете легко создавать таблицы для модели без особых проблем.
hyperjaxb (версии 2 и 3) на самом деле генерирует, в спящем режиме, отображая файлы и связанные объекты объекта, и также делает тест распространения в прямом и обратном направлениях для данного XSD и демонстрационного XML-файла. Можно получить вывод журнала и видеть операторы DDL для себя. Я должен был настроить их немного, но это дает Вам основную синюю печать для запуска с.
Мог бы смотреть на инструмент XSD в Visual Studio 2k8... Я создал реляционный набор данных из xsd, и это могло бы помочь Вашему так или иначе.