XSD файл, где взять аргумент xmlns? - PullRequest
2 голосов
/ 07 апреля 2010
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="abc" targetNamespace="http://schemas.businessNameHere.com/SoftwareNameHere" 
           elementFormDefault="qualified" 
           xmlns="http://schemas.businessNameHere.com/SoftwareNameHere" 
           xmlns:mstns="http://schemas.businessNameHere.com/SoftwareNameHere" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="..." type="..." />
<xs:complexType name="...">

Я работаю над проектом, использующим XSD для создания файла .cs. Мой вопрос касается строки "http://schemas.businessNameHere.com/SoftwareNameHere". Если я ее поменяю, она не сработает. Но http: // недопустим ... Что такое логика и где я могу получить информацию о что туда поставить или как его поменять?

Ответы [ 3 ]

11 голосов
/ 07 апреля 2010

Пространства имен XSD не обязательно должны быть действительными URI.Наличие строки пространства имен, которая является URL-адресом, не означает, что из URL-адреса извлекается что-либо или что-либо вообще связанное с Интернетом - это просто строка, похожая на любую другую.Таким образом, хотя URL-адрес может быть недействительным в том смысле, что он на самом деле ни на что не указывает, он все равно является допустимой строкой в ​​качестве объявления пространства имен.

Вы можете прочитать некоторые из рассуждений о пространстве именидентификаторы в этом формате здесь .

Существует несколько причин для использования URL-адресов в качестве идентификатора пространства имен, но в основном это для удобства - это уникальный идентификатор, который, как правило, имеет некоторое значение для пользователейво многом как способ, которым пространства имен Java классически начинаются с «com», «org» или «net».

Чтобы понять, почему пространства имен имеют формат URI (технически, IRI )Вы можете прочитать стандарты W3C для пространств имен XML .Укажите, что пространства имен XML имеют формат IRI (международный идентификатор ресурса), определенный в RFC3986 .

Для получения дополнительной информации о том, как правильно использовать пространства имен, есть много замечательных пошаговых руководств, как этот .Что не работает, когда вы меняете пространство имен?

2 голосов
/ 07 апреля 2010
xmlns="http://schemas.businessNameHere.com/SoftwareNameHere" 

Это , а не действительный URL, где должен существовать какой-либо документ - это только строка, представляющая пространство имен XML (например, пространство имен в вашем приложении C #, называемое System.Data или что угодно).

Вы можете легко изменить эту строку - здесь нет ссылки на ничего . (но это распространенное заблуждение)

Люди часто используют URL-синтаксис, потому что зарегистрированный для вас / вашей компании домен гарантированно будет уникальным во всем мире -> поэтому полученное из него пространство имен XML также будет уникальным во всем мире.

2 голосов
/ 07 апреля 2010

Пространство имен не имеет семантического значения, кроме необходимости быть уникальным. Люди обычно используют форму URI, поскольку это может указывать на документацию, но это не является обязательным требованием.

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

В хорошо написанном приложении ничего не должно сломаться, если вы просто измените строку пространства имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...