0

XMLSpy で、「値 '18' は属性 'name' には許可されていません。ヒント: 有効な値は 'NCName' です。エラーの場所: xs:schema / xs:element / xs:complexType / xs :choice / xs:element / xs:complexType / xs:choice / xs:element / @name" ここに:

<xs:element name="Age">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="18" type="xs:int"/>

文字を入力すると有効になりますが、そのフィールドには数字が必要です。

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.urent.com/Elmhurst" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.urent.com/Elmhurst" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="URent">
        <xs:annotation>

        </xs:annotation>
        <xs:complexType>
            <xs:choice>
                <xs:element name="RentalPeriod">
                    <xs:complexType>
                        <xs:all>
                            <xs:element name="StartDate" type="xs:date"/>
                            <xs:element name="EndDate" type="xs:date"/>
                        </xs:all>
                    </xs:complexType>
                </xs:element>
                <xs:element name="Age">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="18" type="xs:int"/>
                        <xs:element name="19" type="xs:int"/>
                        <xs:element name="20" type="xs:int"/>
                        <xs:element name="21" type="xs:int"/>
                        <xs:element name="22" type="xs:int"/>
                        <xs:element name="23" type="xs:int"/>
                        <xs:element name="24" type="xs:int"/>
                        <xs:element name="25+" type="xs:int"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="RateCode">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="Corporate" type="xs:string"/>
                        <xs:element name="Leisure" type="xs:string"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="TypeOfVehicle">
                <xs:complexType>
                    <xs:all>
                        <xs:element name="Subcompact" type="xs:string"/>
                        <xs:element name="Compact" type="xs:string"/>
                        <xs:element name="Intermediate" type="xs:string"/>
                        <xs:element name="Standard" type="xs:string"/>
                        <xs:element name="Full Size" type="xs:string"/>
                        <xs:element name="Premium" type="xs:string"/>
                        <xs:element name="Luxury" type="xs:string"/>
                        <xs:element name="Standard Elite SUV" type="xs:string"/>
                        <xs:element name="Intermediate SUV" type="xs:string"/>
                        <xs:element name="Minivan" type="xs:string"/>
                        <xs:element name="Full Size SUV" type="xs:string"/>
                        <xs:element name="Standard SUV" type="xs:string"/>
                        <xs:element name="Premium SUV" type="xs:string"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
            <xs:element name="Residence">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="US" type="xs:string"/>
                        <xs:element name="OutsideUS" type="xs:string"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="SpecialEquipment">
                <xs:complexType>
                    <xs:choice>
                        <xs:element name="GPS Navigation" type="xs:string"/>
                        <xs:element name="XM Radio" type="xs:string"/>
                        <xs:element name="Fuel Service" type="xs:string"/>
                        <xs:element name="Child Safety Seats" type="xs:string"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>
            <xs:element name="Customer Info">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="FirstName" type="xs:string"/>
                        <xs:element name="LastName" type="xs:string"/>
                        <xs:element name="EmailAddress" type="xs:string"/>
                        <xs:element name="PhoneNumber" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:choice>
    </xs:complexType>
</xs:element>

4

1 に答える 1

1

文字通り、あなたの宣言は、有効な Age 要素のセットに と が含まれていることを示していますが、 は含まれ<Age><18>45</18></Age><Age><25+>33</25+></Age>いません<Age><45>18</45></Age>

しかし、'18' と '25+' は要素タイプの名前として XML で許可されていません。ほとんどのプログラミング言語の変数名と同様に、XML の要素型の名前は文字で始まる必要があります。(空白を含めることもできないため、要素名「Full Size」および「Standard Elite SUV」でもエラーが発生します。) したがって、前の段落で示した例は XML ではないため、XSD スキーマを定義することはできません。それらは有効です。

XML の基礎と XSD の基礎のどちらを復習する必要があるかは明確ではありませんが、使用しようとしているテクノロジーをよりよく理解していると、スキーマの開発作業がより快適で生産的になります。これは、テクノロジーに反するのではなく、テクノロジーの粒度に沿って作業するのに役立ちます。

于 2013-06-20T14:40:20.597 に答える