Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Они для разрешения нескольких языков разметки быть объединенными, не имея необходимость волноваться о конфликтах элемента и названий атрибута.
, Например, посмотрите на любой бит кода XSLT, и затем думайте, что произошло бы, если бы Вы не использовали пространства имен и пытались записать XSLT, где вывод должен содержать "шаблон", "для - каждый", и т.д., элементы. Синтаксические ошибки, что.
я оставлю совет и ловушки другим с большим опытом, чем я.
Это - почти то же как выяснение, "почему мы используем пакеты для Java/C#?":
Самая большая ловушка, по моему скромному мнению, является документами интерпретации человеческого взаимодействия, например, разработать код для обработки Документа XML. Слишком легко сфокусироваться на литерале документа, а не результате инфонабора парсинга документа.
, например, следующие узлы
<a xmlns="uri:foo"/>
<foo:a xmlns:foo="uri:foo"/>
<bar:a xmlns:bar="uri:foo"/>
все семантически идентичны - все же очень отличающийся от наивного глаза.
1-й пример приводит к очень частой ошибке, разрабатывающей XPaths - пропавшие без вести того, что "a" находится в пространстве имен - таким образом//урожаи никакие соответствия. (или худшие все еще соответствующие узлы в различном пространстве имен!)
3-й пример открывает другой дефект в понимании - что текст префикса является семантически значительным. При парсинге документов с XPath я могу объявить любой префикс, который я люблю за соответствие, пока это - те соответствий uri из документа.
Думайте о них как о фамилиях для типов элемента. Если у Вас есть два друга, оба позвонили Bob, и Вы говорите об одном из них, кто-то мог бы спросить, о котором Bob Вы говорите. Просто говорящий "Bob" не очень услужлив, таким образом, Вы говорите "Bob Smith" или "Bob Jones".
Это - то же с типами элемента. Иногда краткое название не достаточно, потому что различные люди могут выбрать то же имя. Таким образом, Вы включаете URI как "фамилию", различать различное Качается там.
XML является суперъязыком, означая, что это - основание для какого-либо основанного на XML языка (имеет смысл, правильно?). Думайте о XML как о пере, которое может записать любое предложение на любом языке. Все это зависит от писателя, и предпочтительно язык должен быть известен читателю.
пространство имен XML является в основном названием языка, во многом как "английский" или "ЧўЧ‘ЧЁЧ™ЧЄ". Я помогаю получателю XML-документа проанализировать его и извлечь информацию в.
Скажем, что у меня есть мебельная фабрика и у Вас есть мебельный магазин. Ваше приложение устройства хранения данных и мое приложение предоставления абсолютно не связаны, но когда они связываются через сообщения XML, сообщения должны быть понятными и легко проанализированные обеими сторонами
Поэтому, обе системы должны знать Схема , которая определяет синтаксис языка и согласованные ограничения. Думайте о схеме как об учебнике грамматики и словаре. Схема является документом, который обе системы должны знать, что, кто бы ни пишет, код парсинга в каждой системе должен знать, и это включает объявление пространства имен.
Каждое пространство имен называют как URI, который в большинстве случаев является местоположением документа схемы, который определяет его.
, Конечно, не для каждого XML-документа нужно пространство имен, особенно когда он не используется для передачи информации удаленной системе. Например, когда Вы сериализируете объекты в XML для сохранения в Вашей базе данных.
Мы используем пространства имен потому что люди xeep желание использовать те же слова для значения разных вещей в их собственном частном Айдахо. Обычно, можно определить от контекста, что имеет в виду человек. В базе данных персонала XML является записями персонала. В базе данных реестра транспортных средств XML является записями реестра транспортных средств.
И сохраните тег названным "местоположением", но тег означает разные вещи для каждого и содержит различные поля.
Теперь, это прохладно: но что, если Вы нуждаетесь или хотите сохранить XML от обоих в той же базе данных? Или, более интересно, что, если обе базы данных хотят сохранить блоки XML от некоторого другого, общая база данных (например: база данных Accounts).
пространства имен XML связывают с каждым XML-тэгом URI, такой, что само имя тега имеет URL перед ним, это - часть имени тега (конечно, фактическое использование XML-документов, стенография действительно делает это). Путем тщательного выбора URI его легкое, чтобы быть уверенным, что привычка имен тега сталкивается - это - как будто два тега местоположения назвали полностью по-другому, таким образом, нет никакого беспорядка. В качестве награды два совершенно различных тега местоположения могут включать материал от базы данных учетных записей и явно указать, что они говорят о том же самом.
вещью, которая делает все это полезным, является XPath.
С вышеупомянутым, можно начать писать выражения XPath, которые говорят вещи как: найдите меня любым accounts:account overdue
разделы где угодно в этом xml. Или: найдите меня любым accounts:warning message
объекты где угодно в этом конкретном блоке XML, где предупреждающее сообщение является дочерним узлом (однако глубоко) или personnel:payment
узел или vehicle:status
узел.
, Что выражение XPath могло бы использоваться где-нибудь в документе XSLT, задание которого оно должно преобразовать XML в XHTML или XPDF для дисплея.
, Какова выплата? Почему делают это? Поскольку можно искать файл журнала XML, вытащить все учетные записи запоздалые сообщения везде, где они появляются, , не путая их с тегами "сообщения", произведенными другими системами , преобразовывают их в xhtml и отображают их полужирным красный через тег css: все, не пишущий фрагмент процессуального кодекса .
Например: Пространства имен XML Примером
В моих словах: Если необходимо использовать некоторый формат XML для внешней компании (например), и Вы должны обеспечить в XML-документе некоторую информацию, который имеет то же имя, Вам нужно пространство имен. Пример:
<sampleDoc>
<header title="Hello world!">
<items>
<item name="Volvo" color="Blue"/>
</items>
</header>
</sampleDoc>
и Вы хотите, объединяют некоторые данные в этот документ, который имеет то же имя, но другой смысл (так оцените), необходимо использовать пространство имен:
<sampleDoc>
<header title="Hello world!">
<items>
<item name="Volvo" color="White" my_unique_namespace:color="#FFFFFF"/>
</items>
</header>
</sampleDoc>
Ofcourse - можно изменить имя атрибута. Например, к "my_unique_color". Зародыш в другом документе, может быть атрибут с тем же именем снова. Так, если у Вас есть уникальное пространство имен (наш веб-домен, например), Вы можете всегда использовать те же названия элементов и/или приписываете withoud любые проблемы.
От рекомендация ...
W3 пространства имен XML обеспечивают простой метод для квалификации элемента и названий атрибута, используемых в документах Расширяемого языка разметки путем соединения их с пространствами имен, определенными ссылками URI.
Пространства имен используются для устранения неоднозначности имен, которые Вы используете в рамках документа. Это также дает Вам способность связать краткое название к пространству имен, которое может тогда использоваться для обращения к удаленному элементу или атрибуту. Само пространство имен относится к местоположению, которое определяет элементы и приписывает Вас использование в документе. Существует намного больше для знания, но это - основа его. Существует намного больше информации здесь .