xmlns,xmlns: xsi, xsi: schemaLocation i targetNamespace?
Dla następującego fragmentu XML:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
Co zrobić xmlns
, xmlns:xsi
, i xsi:schemaLocation
atrybuty dokładnie oznaczają? W jaki sposób są spokrewnieni? Do czego służy :
?
I są 2 Adresy URL w xsi:schemaLocation=
-
http://maven.apache.org/POM/4.0.0 (zdarza się, że jest taki sam jak
xmlns
, ale daje błąd 404 podczas odwiedzania.) - http://maven.apache.org/xsd/maven-4.0.0.xsd jest to plik XSD doc.]}
Jeśli 1 nie istnieje, to dlaczego wciąż umieścić go tam?
2 answers
Atrybuty związane z przestrzenią nazw w XML i XML Schema (XSD)
-
xmlns
jest częścią przestrzeni nazw W3C w rekomendacji XML :Prefiks xmlns jest używany tylko do deklarowania wiązań przestrzeni nazw i jest z definicji związana z nazwą przestrzeni nazw http://www.w3.org/2000/xmlns/.
W twoim przykładzie deklaruje, że
http://maven.apache.org/POM/4.0.0
jest domyślną przestrzenią nazw dla elementy Twojego projektu Maven. -
xmlns:xsi
deklaruje standardowy prefiks przestrzeni nazw (xsi
) dla podstawowej przestrzeni nazw używanej w XSD:http://www.w3.org/2001/XMLSchema-instance
XML Schema: Structures definiuje również kilka atrybutów do bezpośredniego użycia w dowolnych dokumentach XML. Atrybuty te znajdują się w innej przestrzeni nazw, który ma nazwę przestrzeni nazw http://www.w3.org/2001/XMLSchema-instance . dla zwięzłości tekst i przykłady w niniejszej specyfikacji przedrostek xsi: oznacza to druga przestrzeń nazw; w praktyce można użyć dowolnego prefiksu.
W twoim przykładzie , deklaruje konwencjonalne powiązanie prefiksu przestrzeni nazw
xsi
dohttp://www.w3.org/2001/XMLSchema-instance
, które poprawnie ustawia użycie następujących atrybutów:-
xsi:type
pozwala instancji XML kojarzyć informacje o typie elementu bezpośrednio, a nie poprzez XSD. Zobacz też Jak ograniczyć wartość elementu XML using xsi:type in XSD?W twoim przykładzie,
xsi:type
nie jest używany; zawarte tutaj dla kompletności dotyczącexsi
. -
xsi:nil
pozwala na uznanie pustego elementu za poprawny, gdy w przeciwnym razie XSD mogłoby na to nie pozwolić.W twoim przykładzie,
xsi:nil
nie jest używany; zawarte tutaj dla kompletności dotyczącexsi
. -
xsi:schemaLocation
orazxsi:noNamespaceSchemaLocation
dostarcza wskazówki procesorowi XML, jak powiązać XSD z dokumentem XML. Użyjxsi:schemaLocation
, gdy istnieje przestrzeń nazw; użyjxsi:noNamespaceSchemaLocation
, gdy nie ma przestrzeni nazw.W twoim przykładzie istnieje przestrzeń nazw, więc prawidłowo używasz
xsi:schemaLocation
, których wartości są oddzielonymi spacjami parami z przestrzeń nazw oraz XSD-location-URI. Twój przykład używa przestrzeni nazwhttp://maven.apache.org/POM/4.0.0
, a przestrzenie nazw są leksykalnymi konstrukcjami nazw, które nie trzeba być retrivable. Twój przykład używa również XSD-location-URI,http://maven.apache.org/xsd/maven-4.0.0.xsd
, który jest retrivable tak jak powinien być.Jeśli twój przykład nie używa przestrzeni nazw, użyjesz
xsi:noNamespaceSchemaLocation
, której wartość jest pojedynczą XSD-location-URI to podpowiada lokalizację zamierzonego XSD i który powinien być odzyskiwalny.
-
targetNamespace
jest atrybutem na korzeniuxs:schema
element XSD która określa przestrzeń nazw elementu głównego XSD jest przeznaczony do zarządzania instancjami dokumentu XML. Musi dopasuj domyślną lub jawną przestrzeń nazw tych dokumentów XML ' root żywioły.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:16:24
xmlns
definiuje domyślną przestrzeń nazw, która określa, że wszystkie węzły w węźle projektu i bez przestrzeni nazw-alias będą domyślnie w przestrzeni nazw http://maven.apache.org/POM/4.0.0
.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
definiuje przestrzeń nazw - http://www.w3.org/2001/XMLSchema-instance
i nadaje jej nowy alias - xsi
xsi:schemaLocation
jest atrybutem schemaLocation
z "http://www.w3.org/2001/XMLSchema-instance"
przestrzeni nazw. Zawiera pary wartości-URI przestrzeni nazw i link do lokalizacji schematu dla pliku XSD-schema tej przestrzeni nazw. Może zawierać wiele par wartości - jeden plik xsd dla każdego zdefiniowanego URI przestrzeni nazw. Że oznacza, że link http://maven.apache.org/xsd/maven-4.0.0.xsd
zawiera schemat xsd z definicją przestrzeni nazw http://maven.apache.org/POM/4.0.0
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-01 11:08:45