C'è un modo per specificare che uno di 2 attributi è richiesto in XSD?XSD - è richiesto uno dei 2 attributi?
ad esempio, ho una definizione come questa.
Voglio essere in grado di definire che almeno uno di questi è richiesto. È possibile?
C'è un modo per specificare che uno di 2 attributi è richiesto in XSD?XSD - è richiesto uno dei 2 attributi?
ad esempio, ho una definizione come questa.
Voglio essere in grado di definire che almeno uno di questi è richiesto. È possibile?
No, non penso che sia possibile farlo con gli attributi. È possibile racchiudere due < xs: elemento > in un < xs: scelta > - ma per gli attributi, non c'è un costrutto equivalente, temo.
Marc
Marc ha ragione ... Non si può avere xs: elementi attributo figlio all'interno di una xs: elemento padre scelta XSD.
La logica sembra essere che se due istanze di un elemento hanno un insieme di attributi mutuamente esclusivi, allora sono logicamente due elementi diversi.
Una soluzione per questo è stata presentata da Jeni Tennison here.
Si dovrebbe guardare a queste pagine su W3C wiki: Simple attribute implication e Attribute muttex
XSD 1.1 vi permetterà di fare questo usando afferma.
<xsd:element name="remove">
<xsd:complexType>
<xsd:attribute name="ref" use="optional"/>
<xsd:attribute name="uri" use="optional"/>
<xsd:assert test="(@ref and not(@uri)) or (not(@ref) and @uri)"/>
</xsd:complexType>
</xsd:element>
L'esempio definisce un elemento denominato "persona" che deve contenere un elemento "dipendente" o un elemento "membro".
<xs:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
Attenzione a fare riferimento alla tua fonte qui? http://www.w3schools.com/xml/el_choice.asp – Reisclef
Bella soluzione, ma da quando è stato rilasciato nel 2012 (http://www.w3.org/TR/xmlschema11-1/), e sto usando .NET 4.0, (rilasciato nel 2010) è non supportato. È supportato in .NET 4.5? Classe di esempio: https://msdn.microsoft.com/en-us/library/swxzdhc0(v=vs.110).aspx –