Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > XML, XSL > пространство имен что это такое


Автор: azam 21.4.2008, 12:10
т. е. я более менее понимаю для чего это нужно но как определить какое именно пространство имен мне надо в конкретном случае

Читаю читаю и не могу понять как выбрать среди этой кучи нужный?

xmlns:xsl="http://www.mycompany.com
xmlns:xsl="http://www.w3.org/TD/WD-xsl
xmlns:xsl="http://www.w3.org/XML/1998/namespace
xmlns:xsl="http://www.w3.org/1999/XSL/Transform
xmlns:adv="http://www.adv-online.de/namespaces/adv/gid/5.1.1"
xmlns:ows="http://www.opengeospatial.net/ows"
xmlns:wfsCap="http://www.opengis.net/wfs/capabilities"
xmlns:ogcFC="http://www.opengis.net/ogc/filterCapabilities"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xs="http://www.w3.org/2001/XMLSchema"..........

Автор: LSD 21.4.2008, 15:34
Цитата(azam @  21.4.2008,  13:10 Найти цитируемый пост)
Читаю читаю и не могу понять как выбрать среди этой кучи нужный?

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

Автор: azam 21.4.2008, 16:01
А если для моего собственного тогда?

Автор: LSD 21.4.2008, 16:12
Тогда ты должен придумать ему полное имя, для уникальности w3.org рекомендует использовать доменные имена. И сопоставить это имя с локальным префиксом: xmlns:myns="http://mycompany.com/product/xml_schema".

Автор: azam 21.4.2008, 18:45
Цитата

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

Спасибо, за разъяснения.

Но еще один вопрос что значит "Выбрать для какого элемента" как я понимаю в xml все теги придумываются.
Значит пространство имен можно придумываться для каждого файла?
Т. е. я не понимаю - что кроме "твоего собственного" (придуманного тобой) элемента бывают еще какие-то?(для которых надо определять какие-то определенные пространства имен?)

Автор: LSD 21.4.2008, 18:55
Цитата(azam @  21.4.2008,  19:45 Найти цитируемый пост)
Т. е. я не понимаю - что кроме "твоего собственного" (придуманного тобой) элемента бывают еще какие-то?(для которых надо определять какие-то определенные пространства имен?) 

Именно. Например в пространстве имен xmlns:xs="http://www.w3.org/2001/XMLSchema" описаны элементы предназначенные для описания XML Schema. И XML-процессор ожидает увидеть в нем только их, если ты поместишь туда свой элемент, то он выдаст тебе ошибку.

Автор: azam 21.4.2008, 20:39
LSD, я "немного потуплю" ты против? smile
Понимаю что описать здесь все не возможно но где тогда можно почитать какие элементы относятся к какому пространству?
И что такое XML Schema?

Автор: LSD 22.4.2008, 11:21
Цитата(azam @  21.4.2008,  21:39 Найти цитируемый пост)
Понимаю что описать здесь все не возможно но где тогда можно почитать какие элементы относятся к какому пространству?

Как только ты написал соответсвующий префикс:
Код

<xs:my-element xmlns:xs="http://www.w3.org/2001/XMLSchema">...

элемент относится к этому неймспейсу. А вот какие элементы разрешены в этом неймспейсе, это уже отдельный вопрос. Например ты можешь создать свою XML Schema в которой описать какие элементы могут быть в пространстве http://mycompany.com/product/xml_schema и тогда при парсинге XML можно будет проверить, что никто не поместил в твое пространство имен какх-то "левых" элементов.


Цитата(azam @  21.4.2008,  21:39 Найти цитируемый пост)
И что такое XML Schema?

Способ проверки документа на валидность, является развитием DTD.

Автор: azam 22.4.2008, 11:51
LSD при много благодарен за разьяснения smile 

Автор: LSD 22.4.2008, 15:18
Пожалуйста.

P.S. Не забывай помечать вопрос как решенный.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)