2016-05-09 15 views
2

Das Schema:CVC-Datentyp-valid.1.2.1: 'mylns: xsi' ist kein gültiger Wert für 'NCName'

<xs:complexType> 
    <xs:sequence> 
    <xs:element ref="FileCreationList"/> 
    <xs:element ref="DivestedExample"/> 
    </xs:sequence> 
    <xs:attribute name="mylns:xsi" type="xs:string"/> 
    <xs:attribute name="xsi:schemaLocation" type="xs:string"/> 
</xs:complexType> 

den Fehler:

Multiple annotations found at this line: 
    - s4s-att-invalid-value: Invalid attribute value for 'name' in element 'attribute'. Recorded reason: cvc-datatype-valid.1.2.1: 'mylns:xsi' is not a valid 
    value for 'NCName'. 
    - src-attribute.3.1: One of 'ref' or 'name' must be present in a local attribute declaration. 
    - s4s-elt-invalid-content.1: The content of '#AnonType_File' is invalid. Element 'attribute' is invalid, misplaced, or occurs too often. 

Antwort

2

Attributname Erklärungen müssen NCNames (nicht kolonisiert Namen) sein:

NCName ::= (Letter | '_') (NCNameChar)* /* An XML Name, minus the ":" */ 

Entfernen Sie die Doppelpunkte von mylns:xsi und xsi:schemaLocation, um den Fehler zu beseitigen.

Hinweise:

  • Sie kein Namespacepräfix in einer XSD-Deklaration eines Elements enthält oder Attributnamen.
  • Erklären Sie nicht xsi:schemaLocation als ein Attribut in einem XSD; erklären und verweisen auf die http://www.w3.org/2001/XMLSchema-instance Namespace:

    <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:schemaLocation="http://www.example.com/name try.xsd"/> 
    
0

Im Allgemeinen, wenn Sie ein Element deklarieren möchten, die Attribute in einem anderen Namespace verwendet, dann müssen Sie (a) die Attribute in einem separaten XSD erklären Dokument, mit einem anderen targetNamespace, (b) verwende xs: import, um das XSD-Dokument zu importieren, und (c) referenziere die Attributdeklarationen unter Verwendung von <xs:attribute ref="somens:localname"/>.

jedoch:

(i) Namespace Erklärungen (xmlns: xx = "uri") werden nicht als Attribute berücksichtigt und müssen nicht deklariert werden (in der Tat, müssen nicht deklariert werden) im Schema

(ii) Attribute im Namensraum "xsi" sind speziell - sie sind automatisch für jedes Element erlaubt und sollten nicht im Schema deklariert werden.