2009-04-23 12 views
0

Ich habe diese xsd:Benötigen mit (rekursiv) xsd Gruppe helfen

<?xml version="1.0" encoding="utf-8" ?> 
<xs:schema xmlns="http://myschema.com/schema" 
      targetNamespace="http://myschema.com/schema" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:complexType name="aType" mixed="true"> 
     <xs:group ref="aElements" minOccurs="0" maxOccurs="unbounded"/> 
    </xs:complexType> 

    <xs:group name="aElements"> 
     <xs:choice> 
      <xs:element name="a" type="aType"/> 
     </xs:choice> 
    </xs:group> 

    <xs:element name="b"> 
     <xs:complexType> 
      <xs:choice minOccurs="0" maxOccurs="unbounded"> 
       <xs:group ref="aElements"/> 
      </xs:choice> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 

und ich versuche, dieses XML-Dokument gegen sie zu bestätigen:

<?xml version="1.0" encoding="utf-8" ?> 
<b xmlns="http://myschema.com/schema"> 
    <a/> 
</b> 

jedoch Visual Studio 2008 XML-Validator beschwert sich über < a> element:

Das Element 'b' im Namespace 'http://myschema.com/schema' hat das ungültige untergeordnete Element 'a' im Namespace 'http://myschema.com/schema'. Liste der möglichen erwarteten Elemente: "a".

Was ist das Problem?

Edit: Ups, wenn ich das Beispiel verdummte, habe ich vergessen, das Element optional innerhalb des Elements zu machen, was zu unendlicher Rekursion führt. Das Problem ist jedoch immer noch mit diesem Mod da.


ANTWORT: Die Antwort war, dass die xs: schema-Tag sollte die ElementFormDefault- = "qualifiziert" Attribut enthalten.

Antwort

0

definieren Sie aElements mit aType und aType mit aElements. Ich bin kein xsd-Experte, aber wie soll das funktionieren?

+0

Hoppla, das Element sollte optioal sein. Q aktualisiert – erikkallen

0

Sie könnten Ihr Leben viel einfacher mit einem Editor für XSD Entwicklung. Wir verwenden Liquid XML Studio seit Ewigkeiten, es macht das Leben viel einfacher.

+1

keine Antwort auf die Frage –

Verwandte Themen