XML-Schema: Einen Standardwert für einen complexType festlegen?

8

Nehmen wir an, ich möchte einen generischen complexType wie folgt einrichten:

%Vor%

Und ich möchte diesen complexType an verschiedenen Stellen in meiner Schemadatei wie folgt referenzieren:

%Vor%

Ist es mir möglich, Standardwerte für die Schaltflächen-Unterelemente über das Element someButton festzulegen? (I.e. wenn ich möchte, dass einigeButton eine Standardbezeichnung von "Go" oder eine Standard-Href von "index.html" haben)

Grundsätzlich ... im Moment habe ich etwas wie

%Vor%

und ich versuche, die Redundanz so einfach wie möglich zu entfernen.

    
Adam Plumb 29.06.2009, 19:59
quelle

1 Antwort

18

Nein, nur für einfache Werte. Aber vielleicht können Sie sie verwenden, um zu tun, was Sie wollen, indem Sie Standardwerte für alle einfachen Teile Ihres komplexen Typs angeben. Es funktioniert jedoch besser für Attribute als für die Elemente, die Sie haben (weil "Standardattributwerte gelten, wenn Attribute fehlen, und Standardelementwerte gelten, wenn Elemente leer sind" - siehe unten). Attribute sind standardmäßig selbst optional:

%Vor%
  

Standardwerte von Attributen und Elementen werden mit dem Standardattribut deklariert, obwohl dieses Attribut in jedem Fall eine etwas andere Konsequenz hat. Wenn ein Attribut mit einem Standardwert deklariert wird, ist der Wert des Attributs der Wert, der als Wert des Attributs in einem Instanzdokument angezeigt wird. Wenn das Attribut nicht im Instanzdokument angezeigt wird, stellt der Schema-Prozessor dem Attribut einen Wert bereit, der dem des Standardattributs entspricht. Beachten Sie, dass Standardwerte für Attribute nur sinnvoll sind, wenn die Attribute selbst optional sind. Daher ist es ein Fehler, sowohl einen Standardwert als auch einen anderen Wert als den optionalen Wert für die Verwendung anzugeben.

     

Der Schema-Prozessor behandelt defaulted Elemente leicht unterschiedlich. Wenn ein Element mit einem Standardwert deklariert wird, ist der Wert des Elements der Wert, der als Inhalt des Elements im Instanzdokument angezeigt wird. Wenn das Element ohne Inhalt angezeigt wird, stellt der Schema-Prozessor dem Element einen Wert bereit, der dem des Standardattributs entspricht. Wenn das Element jedoch nicht im Instanzdokument angezeigt wird, stellt der Schema-Prozessor das Element überhaupt nicht bereit. Zusammengefasst können die Unterschiede zwischen Element- und Attributstandardwerten wie folgt angegeben werden: Standardattributwerte gelten, wenn Attribute fehlen, und Standardelementwerte gelten, wenn Elemente leer sind. [Hervorhebung hinzugefügt]

Ссылка

    
13ren 29.06.2009, 21:14
quelle

Tags und Links