<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:annotation><xsd:documentation xml:lang="en"> Schema for Classified Advertisements (classads) as used in the Condor High Throughput Computing progject. </xsd:documentation></xsd:annotation> <xsd:element name="classads"> <xsd:annotation><xsd:documentation xml:lang="en"> The root document element. It is identical to an "l" element except for the tag: Its content is simply a sequence of expressions. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="c"/> <xsd:element ref="l"/> <xsd:element ref="e"/> <xsd:element ref="s"/> <xsd:element ref="i"/> <xsd:element ref="r"/> <xsd:element ref="b"/> <xsd:element ref="er"/> <xsd:element ref="un"/> <xsd:element ref="at"/> <xsd:element ref="rt"/> </xsd:choice> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="s" type="xsd:string"> <xsd:annotation><xsd:documentation xml:lang="en"> A string literal. Content is the string itself. It may contain character entities, such as &lt;. It may also contain backslash escapes, which are interpreted by the application. </xsd:documentation></xsd:annotation> </xsd:element> <xsd:element name="i" type="xsd:int"> <xsd:annotation><xsd:documentation xml:lang="en"> An integer literal. Content is the value, as a sequence of digits. </xsd:documentation></xsd:annotation> </xsd:element> <xsd:element name="r"> <xsd:annotation><xsd:documentation xml:lang="en"> A real (double-precision floating point) literal. Content is the value in "scientific" notation corresponding to the printf %1.5E format, or one of the special values INF, -INF, or NaN. </xsd:documentation></xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:double"> <xsd:pattern value="-?INF|NaN|-?\d\.\d{15}E(\+|\-)\d{2,3}"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="b"> <xsd:annotation><xsd:documentation xml:lang="en"> A boolean literal. Represented as an element with empty content and required attribute v="t" or v="f". Content must be empty. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:attribute name="v"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="t"/> <xsd:enumeration value="f"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="er"> <xsd:annotation><xsd:documentation xml:lang="en"> An error value. The "a" attribute, if present, is an annotation (reason for the error). Content must be empty. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:attribute name="a" type="xsd:string"/> </xsd:complexType> </xsd:element> <xsd:element name="un"> <xsd:annotation><xsd:documentation xml:lang="en"> An undefined value. The "a" attribute, if present, is an annotation (perhaps the name of the classad attribute that was undefined). Content must be empty. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:attribute name="a" type="xsd:string"/> </xsd:complexType> </xsd:element> <xsd:element name="at"> <xsd:annotation><xsd:documentation xml:lang="en"> An absolute time literal. Content is yyyy:mm:ddThh:mm:ssphh:mm where p is + or -, other lower-case letter represent arbitrary digits, and the remaining characters must appear exactly as shown. Note that the time zone is required and it contains a colon. </xsd:documentation></xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:dateTime"> <xsd:pattern value= "\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d[+\-]\d\d:\d\d"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="rt"> <xsd:annotation><xsd:documentation xml:lang="en"> A relative time literal. Content is -PnDTnHnMn.dddS where "n" represents one or more digits and "d" represents one digit. The leading sign and individual components (nD, nH, etc.) may be omitted, but if present, they must appear in the order indicated. The 'T' is omitted if nD is the only field. The fractional seconds, together with the decimal point, may be omitted, but if present there must be exactly three digits. Note, the pattern below does not completely specify all the constraints. For example, the T must be omitted if and only if the H, M, and S fields are all omitted, and the attribute may not be completely empty. </xsd:documentation></xsd:annotation> <xsd:simpleType> <xsd:restriction base="xsd:duration"> <xsd:pattern value="-?P(\d+D)?T?(\d+H)?(\d+M)?(\d+(\.\d\d\d)?S)?"/> </xsd:restriction> </xsd:simpleType> </xsd:element> <xsd:element name="e" type="xsd:string"> <xsd:annotation><xsd:documentation xml:lang="en"> An expression. Content is an arbitrary classad expression in the "native syntax". This element should not be used for literals or if the "top-level operator" is list or classad. </xsd:documentation></xsd:annotation> </xsd:element> <xsd:element name="l"> <xsd:annotation><xsd:documentation xml:lang="en"> A list. Content is a sequence of arbitrary expressions. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="c"/> <xsd:element ref="l"/> <xsd:element ref="e"/> <xsd:element ref="s"/> <xsd:element ref="i"/> <xsd:element ref="r"/> <xsd:element ref="b"/> <xsd:element ref="er"/> <xsd:element ref="un"/> <xsd:element ref="at"/> <xsd:element ref="rt"/> </xsd:choice> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="c"> <xsd:annotation><xsd:documentation xml:lang="en"> A "classad" (a record). Content is a sequence of "a" elements. </xsd:documentation></xsd:annotation> <xsd:complexType> <xsd:sequence> <xsd:element name="a" minOccurs="0" maxOccurs="unbounded"> <xsd:complexType> <xsd:sequence> <xsd:choice> <xsd:element ref="c"/> <xsd:element ref="l"/> <xsd:element ref="e"/> <xsd:element ref="s"/> <xsd:element ref="i"/> <xsd:element ref="r"/> <xsd:element ref="b"/> <xsd:element ref="er"/> <xsd:element ref="un"/> <xsd:element ref="at"/> <xsd:element ref="rt"/> </xsd:choice> </xsd:sequence> <xsd:attribute name="n" type="xsd:string"/> </xsd:complexType> </xsd:element> </xsd:sequence> </xsd:complexType> <xsd:unique name="dummy"> <xsd:selector xpath="a"/> <xsd:field xpath="@n"/> </xsd:unique> </xsd:element> </xsd:schema>