XML/XSD: Restricted Type



  • Erreichen will ich das hier:

    <texture name="Foo" file="foo.png" mode="clamp" />
    <texture name="Bar" file="bar.png" mode="repeat" />
    

    Es soll nur clamp oder repeat erlaubt sein.

    <!-- 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:

    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">
    


  • Scorcher24 schrieb:

    Erreichen will ich das hier:

    <texture name="Foo" file="foo.png" mode="clamp" />
    <texture name="Bar" file="bar.png" mode="repeat" />
    

    Es soll nur clamp oder repeat erlaubt sein.

    <!-- 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:

    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">
    

Anmelden zum Antworten