Wie kann man ein Feld in der XSD -Erstellung „benötigt“ einstellen?
-
28-10-2019 - |
Frage
Ich schreibe eine XSD -Datei für die Webservice -Kommunikation zwischen einer Anwendung und SharePoint auf. Ich versuche, meine Parameter "erforderlich" zu machen, aber selbst wenn ich Minoccurs auf 1 einbrachte, könnten sie nicht angegeben werden.
Wie kann ich dieses Problem lösen? Hier ist einer von mir XSD:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="RemoveGroup"
targetNamespace="http://tempuri.org/RemoveGroup.xsd"
elementFormDefault="qualified"
xmlns="http://tempuri.org/RemoveGroup.xsd"
xmlns:mstns="http://tempuri.org/RemoveGroup.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="RemoveGroup">
<xs:complexType>
<xs:sequence>
<xs:element name="tt_group_id" type="xs:long" />
<xs:element name="tt_network_id" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Ich hoffe, es gibt einen Weg, Houndred von "if (input.Parameter! = Null)" nicht aufzuschreiben.
Lösung
Verwendung minOccurs="1"
beider <element/>
oder <sequence/>
Level ist die richtige Sache. Welchen spezifischen Fehler erhalten Sie?
AKTUALISIEREN
Eigentlich innerhalb von a <sequence/>
Parser sollten genau eine Instanz eines Elements erwarten
AKTUALISIEREN
Ihr Parser kann Fehler als Ereignisse abgeben, die Sie verarbeiten müssen, um die Fehler zu erfassen - viele gemeinsame Parser haben dieses Verhalten.
Etwas, das einen Fehler verursachen könnte, ist ein Nullwert in der long
Einfacher Typ - Dieser Typ erlaubt keine Leerzeichen. Wenn Sie angeben, dass Nulls zulässig sind, sollten Sie verwenden nil=true
aus dem Namespace http://www.w3.org/2001/XMLSchema-instance
.