Seite 1 von 1

XML/XSD: Restricted Type

Verfasst: 01.03.2011 19:15
von Scorcher24_
Erreichen will ich das hier:

Code: Alles auswählen

<texture name="Foo" file="foo.png" mode="clamp" />
<texture name="Bar" file="bar.png" mode="repeat" />
Es soll nur clamp oder repeat erlaubt sein.

Code: Alles auswählen

        <!-- Textures -->
        <xs:element name="texture">
          <xs:complexType>
            <!-- mode is only allowed to be clamp or repeat -->
            <xs:simpleType name="TextureModeType">
              <xs:restriction base="xs:string">
                <xs:enumeration value="clamp" />
                <xs:enumeration value="repeat"/>
              </xs:restriction>
            </xs:simpleType>


            <!-- Attributes for Texture -->
            <xs:attribute name="name" type="xs:string" use="required" />
            <xs:attribute name="file" type="xs:string" use="required" />
            <xs:attribute name="mode" type="TextureModeType" use="required" />                     
          </xs:complexType>
        </xs:element>
Visual Studio meckert aber, dass der Simple Type da nicht hingehört. Genauso meckert er über das name-attribute.
Hab mich an diese Auflistung gehalten:
http://www.w3schools.com/schema/schema_facets.asp

Mein Schema und DocType:

Code: Alles auswählen

XSD:
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

XML:
<resources xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xml/NightLightResources.xsd">
Jemand eine Idee?

Verfasst: 02.03.2011 09:08
von JesusOfCool
ist zwar schon ne zeit lang her das ich mit xsd zeug gearbeitet hab, aber damals hab ich n anderes programm verwendet (hab aber kA mehr wie das geheißen hat)
wenn du aber alles mit sicherheit standardkonform gemacht hast könnts an VS liegen, immerhin ist microsoft ja dafür bekannt sich nicht an standards zu halten.

Verfasst: 02.03.2011 23:49
von Scorcher24_
Danke für die Antwort.
Naja, VC++ Prof. hält sich schon an XML-Standards eigentlich. Ich validiere die erzeugte XML-Datei auch nicht in meinem Programm, es ist nur dafür gedacht dass Visual C++ beim schreiben des XML meckern kann, wenn etwas nicht stimmt. Dafür brauch ich das XSD.

Re: XML/XSD: Restricted Type

Verfasst: 03.03.2011 05:48
von Worrelix
Scorcher24 hat geschrieben: Visual Studio meckert aber, dass der Simple Type da nicht hingehört. Genauso meckert er über das name-attribute.
Ein be-namtes SimpleType darfst du nur global definieren, sprich: direkt unter dem Wurzelelement.

Alle SimpleTypes, die tiefer verschachtelt irgendwo stehen, dürfen kein "name = 'xyz' " haben.

Re: XML/XSD: Restricted Type

Verfasst: 03.03.2011 06:14
von Scorcher24_
Worrelix hat geschrieben:
Scorcher24 hat geschrieben: Visual Studio meckert aber, dass der Simple Type da nicht hingehört. Genauso meckert er über das name-attribute.
Ein be-namtes SimpleType darfst du nur global definieren, sprich: direkt unter dem Wurzelelement.

Alle SimpleTypes, die tiefer verschachtelt irgendwo stehen, dürfen kein "name = 'xyz' " haben.
Ey, danke dir. Funzt jetzt :)