XML séma névtér

Sziasztok!

Adott az alábbi két fájl:

minta.xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://example.com"
xmlns="http://example.com"
elementFormDefault="qualified">

...

minta.xml

<?xml version="1.0" encoding="utf-8"?>
<DOCROOT xmlns="http://example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://example.com minta.xsd">

...

Ez így szépen validálódik.

Viszont, ha kitörlöm a sémából a xmlns="http://example.com" sort, akkor azt modja:
Schema Representation Constraint: Namespace '' is referenced without declaration

XMLCopyeditor-t használok a validálásra.

A kérdés igazándiból az, hogy miért szükséges a sémában az xml névterének a megadása, mint saját default névtér, amikor minden elem az XMLSchema névtérből van benne? Mit jelent és miért kell ezt megadni, hogy menjen a dolog?

Remélem valaki el tudja ezt magyarázni érthetően, mert a webes keresgéléssel nem találtam egyértelmű választ.

Köszi!
pentike

Hozzászólások

Ha a DOCROOT elől kitörlöd a namespace-edet, akkor az xsi namespace-en kívül nem marad semmi, abban is csak az xsd-t definiálod, illetve definiálnád egy nem létező namespace-hez (amit kitöröltél)

Ez így jóez? Valami XML guru majd tovább ragozza :)

Nem a DOCROOT tag-ből törlöm ki az xmlns="http://example.com" -ot, hanem a sémából.

Azt nem értem, hogy ha a sémában megadom, hogy targetNamespace="http://example.com" az miért nem elég. Miért kell a sémában azt is megadni, hogy xmlns="http://example.com" amikor az magára a sémára vonatkozik.