XML/XSD: Restricted Type

Alles Wissenswerte über Skripte, Browser, Makros, PhP, HTML...

Moderatoren: Moderatoren, Redakteure

Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

XML/XSD: Restricted Type

Beitrag 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?
Benutzeravatar
JesusOfCool
Beiträge: 34685
Registriert: 27.11.2009 09:55
Persönliche Nachricht:

Beitrag 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.
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Beitrag 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.
Benutzeravatar
Worrelix
Beiträge: 3636
Registriert: 10.12.2009 19:48
Persönliche Nachricht:

Re: XML/XSD: Restricted Type

Beitrag 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.
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Re: XML/XSD: Restricted Type

Beitrag 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 :)