2013-03-22 10 views
10

Próbuję użyć następujących w XSDXML Schema 1.1 nie uznając „dochodzić” lub „twierdzenie”

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" > 
<xs:element name="dimension"> 
    <xs:complexType> 
    <xs:attribute name="height" type="xs:int"/> 
    <xs:attribute name="width" type="xs:int"/> 
    <xs:assert test="@height = @width"/> 
    </xs:complexType> 
</xs:element> 

wiem dochodzić/twierdzenia są częścią schematu XML 1.1, ale nie 1,0. Jednak wszystko, co mam czytać wskazuje nazw jest taka sama dla obu: http://www.w3.org/2001/XMLSchema

A minor problem jest, że program używam napisać schematu (Microsoft Visual Studio) nie uznać „wymuszenia” elementu, mówiąc: "element complexType w przestrzeni nazw (...) ma nieprawidłowy element podrzędny" assert ".

Głównym problemem jest to, że kiedy rzeczywiście próbują zweryfikować XML przeciwko tego schematu, przy użyciu xmllint, to rzuca się błąd mówiąc

" element assert: Schemas parser error : Element '{http://www.w3.org/2001/XMLSchema}complexType': The content is not valid. Expected is (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))) 

1.1 po prostu nie uznawane przez xmllint/visual studio, mimo że wskazał na przestrzenie nazw 1.1?

Odpowiedz

16

Do przetworzenia schematu XSD 1.1 potrzebny jest procesor schematu XSD 1.1. Microsoft ich nie dostarcza (wydaje się, że zrezygnowali z implementacji nowych specyfikacji XML W3C). O ile mi wiadomo, jedynym procesorem XSD 1.1 dostępnym na platformie .NET jest Saxonica.

+0

Dziękujemy! Jestem nowicjuszem w schemacie XML, ale pomyślałem, że procesor po prostu wyciągnie najnowszą definicję z przestrzeni nazw, którą wskażesz. Czy istnieją jakieś edytory zgodne z XSD 1.1 dla systemu Linux? – user2197116

+0

Nie, nie można oczekiwać, że procesor opracowany w 1994 r. Wdroży specyfikację opublikowaną w 2013 r. OXygen to edytor działający na systemie Linux i obsługujący XSD 1.1 –

Powiązane problemy