XSD - не компилируется.
XSD - не компилируется.
Два фрагмента схемы:
<xs:complexType name="TValueAnnotation">
<xs:sequence>
<xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1" />
<xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="Term" type="edm:TQualifiedName" use="required" />
<xs:attribute name="Qualifier" type="edm:TSimpleIdentifier" use="optional" />
<xs:attributeGroup ref="edm:GInlineExpressions" />
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
второй:
<xs:complexType name="TPropertyValue">
<xs:sequence>
<xs:element name="Documentation" type="edm:TDocumentation" minOccurs="0" maxOccurs="1" />
<xs:group ref="edm:GExpression" minOccurs="1" maxOccurs="1" />
</xs:sequence>
<xs:attribute name="Property" type="edm:TSimpleIdentifier" use="required" />
<xs:attributeGroup ref="edm:GInlineExpressions" />
<xs:anyAttribute namespace="##other" processContents="lax" />
</xs:complexType>
проблемная часть:
<xs:attributeGroup ref="edm:GInlineExpressions" />
Суть проблемы
- при обработке первого фрагмента группа атрибутов ресолвится,
- при обработке второго фрагмента та же группа не ресолвится...
Не понимаю.
Компилятор схем - v4.6.1055.0
Немного подредактировал схему - ровно настолько чтобы получилось ее скомпилировать... и не запутаться в отсутствующих деталях.
Теперь пытаюсь кодом полученным из компиляции схемы (описывающей схемы по декларированному стандарту SDGL Schema v3.0) прочитать
саму схему...
Даже не прочитать - сериализовать класс стандартным сериализером... и опять - нефига...
Видимо придется:
- делать крутой валидатор схем с анализом вычеркиваемой части
- дорабатывать полученный после процессинга CodeCompliteUnit...
В общем - жопа полная...