XMl Schema

0

Witam,

Mam pytanie odnośnie tworzenia Schematów do plików XML. Mianowicie mam ok 10 plików xml i zrobiłem do nich tyle samo schematów(wszystkie umieszczone w tej samej przestrzeni nazw). Czy jest możliwość, żeby to tych plików zrobić jeden plik główny do którego będą zaimportowane wszystkie schematy i użytkownik importując sobie tylko ten jeden plik główny będzie mógł walidować wszystkie xml'e jakie byłyby zaimportowane w tym pliku?

0

Idąc za http://www.xfront.com/ZeroOneOrManyNamespaces.html możesz użyć w głównym pliku

<xsd:import namespace="NAMESPACE" schemaLocation="DEFINICJA.xsd"/>

Jeśli masz wiele przestrzeni

lub poniższego jesli masz jedną przestrzeń.

<xsd:include schemaLocation="DEFINICJA.xsd"/>

Polecam w ogóle cały art :)

0

Witam ponownie.

Powyższy artykuł o ile dobrze zrozumiałem odnosi się do sytuacji gdzie stosując import można się odwołać do typu schematu importowanego. Mi bardziej chodzi o coś takiego, że:

Przykładowy plik xsd1:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://myNameSpace/myfile" elementFormDefault="qualified">
<xs:element name="element_glowny">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="element_wew" type="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>   

I teraz czy jeżeli w główny plik main zaimportuje ten plik xsd1 tak jak poniżej to czy walidując znacznik element_główny z poziomu pliku main zostanie on zweryfikowany? Czy ja źle rozumiem działanie tego importu?

Plik main.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://myNameSpace/main" xmlns:myfile="http://myNameSpace/myfile">
  <xs:import schemaLocation="myfile.xsd" namespace="http://myNameSpace/myfile"></xs:import> 
</xs:schema>

dodanie znaczników <code class="xml"> - furious programming

0

Powinno zwalidować. Dla pewności możesz użyć xmlvalidatora i sprawdzić organoleptycznie.

0

Niestety XMLValidator pokazuje, że "Nie można odnaleźć informacji schematu dla elementu element_glowny" i to samo dla element_wew.

Jeżeli wczytam plik xsd1 bezpośrednio to validacja jest ok.

Czy jest jakiś inny sposób żeby to zaimportować?

0

No to pytanie: Jaka technologia jest używana przez Ciebie do walidacji xml? drobne przegrzebanie google daje multum wyników z Javy: https://www.google.pl/search?q=XMLValidator+xsd%3Aimport

0

W tej chwili do walidacji używam właśnie XMLValidatora. Pliki xsd chcę, żeby były na tyle uniwersalne żeby obojętnie w jakiej technologii pisząc można było by je zaimportować i żeby walidowały.

1 użytkowników online, w tym zalogowanych: 0, gości: 1