ГОСТ Р 59791—2021
## подтверждающим принадлежность обозначения имени к отношению,
## связанному с ограничивающим типом, а другой —
## исходным количественным высказыванием.
Quantifier.type |= cICommon, (Name | Name-constrained)*, cISentence
Name-constrained = element Name { Name-constrained.type }
Name-constrained.type = cICommon, type+, (cri.attrib | symbol)
type = element type { type.type }
type.type = Name
## -Данные
## Элемент cl: Data представляет собой имя (V) абстрактного синтаксиса,
## приведенного в фиксированной интерпретации.
## Фиксированная интерпретация указывается в соответствии
## с сопоставлением типа данных с лексическим значением.
## Лексическое значение — это содержимое
## дочернего элемента символа (если таковой присутствует); в противном случае это содержимое
## элемента cl: Data.
## Если атрибут типа данных присутствует, то значение атрибута
## в виде IRI определяется сопоставлением типа данных.
## Если атрибут типа данных отсутствует, а
## лексическое значение относится к лексическому пространству xsd: string,
## используется тип данных xsd: string.
## В противном случае используется тип данных rdf: XMLLiteral.
## Если лексическое значение не относится к лексическому пространству
## указанного типа данных, это является синтаксической ошибкой, даже если
## документ XML действителен в соответствии с этой схемой.
cITerm |= Data
Data = element Data { Data.type }
Data.type |= cICommon, symbol-data
Data.type |= datatype.attrib?, (text & anyElement*)
symbol-data = element symbol { symbol-data.type }
symbol-data.type = datatype.attrib?, (text & anyElement*)
datatype.attrib = attribute datatype { curieOrAbsIRI.datatype }
## Тип данных
cIStatement |= Datatype
Datatype = element Datatype{ Datatype.type }
Datatype.type |= cICommentable, cri.attrib, xsdllserDefined.type
xsdllserDefined.type|= element xs: simpleType { xsdSimpleType.type}
xsdSimpleType.type |= xsdSimpleDerivation
xsdSimpleDerivation |= xsdRestriction
xsdSimpleDerivation |= xsdList
xsdSimpleDerivation |= xsdllnion
xsdRestriction |= element xs: restriction { baseAtt?, xsdSimpleRestrictionModel}
baseAtt = attribute base { xsd: QName}
xsdSimpleRestrictionModel |= element xs: simpleType { xsdSimpleType.type }?, xsdFacets*
55