Почему мы не можем использовать случайные строки вместо URI для пространств имен XML? - PullRequest
2 голосов
/ 27 апреля 2019

Я пытаюсь понять причины соглашения о пространствах имен XML (используя URI для пространств имен).

Я прочитал эту ветку в StackOverflow.Я понимаю, что полное имя пространства имен должно быть уникальным.Но я до сих пор не понимаю, почему мы не можем просто использовать для этого случайные строки?

Например, мы пытаемся отличить настоящие автомобили от игрушечных машин в нашем файле:

<?xml version="1.0" encoding="UTF-8"?>
<carstore xmlns:real="http://cxf.apache.org/jaxws/cars/real" xmlns:toy="http://cxf.apache.org/jaxws/cars/toy">
<real:car category="truck">
    <model lang="en">Scania R 770</model>
    <year>2005</year>
    <price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
    <title lang="en">Ford Focus</title>
    <year>2012</year>
    <price currency="US dollar">100.00</price>
</toy:car>
</carstore>


<?xml version="1.0" encoding="UTF-8"?>
<carstore xmlns:real="heroigairehgoiaer7272" xmlns:toy="289ry89fhfhbvnsdkljnv">
<real:car category="truck">
<model lang="en">Scania R 770</model>
<year>2005</year>
<price currency="US dollar">200000.00</price>
</real:car>
<toy:car category="sedan">
<title lang="en">Ford Focus</title>
<year>2012</year>
<price currency="US dollar">100.00</price>
</toy:car>
</carstore>

Буду признателен, если кто-нибудь объяснит, почему этот вариант

xmlns:real="http://cxf.apache.org/jaxws/cars/real"

лучше этого:

xmlns:real="heroigairehgoiaer7272"

С какими негативными последствиями мы можем столкнуться при использовании второго варианта??Наверное, есть какие-нибудь реальные примеры?

1 Ответ

3 голосов
/ 27 апреля 2019

Случайные, уникальные , строки могут использоваться для значений пространства имен, однако ...

Пространства имен на основе URI предоставляют преимущества по сравнению со случайными строками:

  1. Использование механизмов владения на месте доменных имен позволяет избежать дублирования этих функций для управления пространствами имен.
  2. Доменные имена сообщают о владении ,что полезно для определения стороны или проекта, ответственного за пространство имен.
  3. Хотя URI пространства имен не должны быть извлекаемыми , они могут быть и часто являются, таким образом, служа в качестве удобные средства поиска управляющих схем или документации.
  4. Иерархическая природа URI может отражать естественную иерархическую организацию коллекций имен.
...