XSD: Standardwert eines fehlenden Elements

8

Ist es möglich, einen Standardwert für ein fehlendes Element in einem XML-Schema zu definieren? Ich habe das folgende Snippet:

%Vor%

Wenn ich in der XML-Datei

habe %Vor%

oder

%Vor%

validiert und ich erhalte den richtigen Wert. Wenn ich in der XML-Datei habe

%Vor%

validiert auch und ich erhalte den Standardwert von ftp.

Meine Suchen zeigen, dass Standardattributwerte angewendet werden, wenn Attribute fehlen, und Standardelementwerte gelten, wenn Elemente leer sind. Ist es möglich, einen Standardwert für ein fehlendes Element zu haben?

Grüße

rambius

    
rambius 09.09.2013, 09:13
quelle

1 Antwort

16

Nein. XSD bietet dies nicht.

Sie können den Standardwert eines Elements angeben. Aber wenn es einmal fehlt (wenn das Inhaltsmodell des übergeordneten Elements dies zulässt), Alle Anforderungen an dieses Element geben entweder eine leere Zeichenfolge oder null (oder nur einen Fehler) zurück. Das fehlende Element ist ein nicht vorhandenes Element!

Für Attribute ist es möglich, weil Attribute viel einfacher sind. Alle Attribute eines Elements bilden effektiv eine ungeordnete Menge von benannten einfachen Werten. Es gibt keine Art von Attributbaum (mit der Variablenstruktur darin), der an das Elternelement angehängt ist.

Aber mit Elementen sind die Dinge viel komplexer. Wenn etwas "default" über fehlende Elemente erlaubt wäre, würde dies viele Zweideutigkeiten verursachen. Zum Beispiel müsste eine Art "Standardinhalt" angegeben werden, was wäre eine Folge von Elementen, die automatisch anstelle von Leere hervorgerufen werden ... oder sogar eine Anzahl von möglichen "Standardinhalten", die jeweils hervorgerufen werden, wenn nur einige Elemente explizit spezifiziert sind und andere implizit (standardmäßig) diese ergänzen müssen. .... Nun, wenn du weiter darüber nachdenkst, werden die Dinge verblüffend komplex. Eine andere Sprache müsste dann erstellt werden! Aber für welchen Zweck?

    
ColdFusion 09.09.2013 10:58
quelle

Tags und Links