Come mettere "richiesto" un campo nella creazione di XSD?
-
28-10-2019 - |
Domanda
Sto scrivendo alcuni file XSD per la comunicazione WebService tra un'applicazione e SharePoint .. Sto cercando di rendere i miei parametri "richiesti" ma anche se metto i minoccurs a 1, potrebbero non essere specificati.
Come posso risolvere questo problema? Ecco uno dei miei 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>
Spero che ci sia un modo per non scrivere perseguitato da "if (input.parameter! = Null)" ...
Soluzione
Usando minOccurs="1"
in entrambi i <element/>
o <sequence/>
Il livello è la cosa corretta da fare. Quale errore specifico stai ricevendo?
AGGIORNARE
In realtà all'interno di a <sequence/>
i parser dovrebbero aspettarsi esattamente un'istanza di un elemento
AGGIORNARE
Il parser potrebbe emettere errori come eventi che devi gestire per catturare gli errori: molti parser comuni hanno questo comportamento.
Qualcosa che potrebbe causare un errore è un valore nullo in long
Tipo semplice: questo tipo non consente spazi vuoti. Se vuoi indicare che i null sono consentiti, dovresti usare nil=true
dallo spazio dei nomi http://www.w3.org/2001/XMLSchema-instance
.