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.
Hoppla, das Element sollte optioal sein. Q aktualisiert – erikkallen