Я пытаюсь реализовать IXmlSerializable.
Мой класс реализует сериализуемый и пишет одну строку. Я хочу иметь возможность экспортировать схему графа объекта с помощью XsdDataContractExporter (стандартная).
Класс сериализуется в простой XML.
<Urn ns='http://palantir.co.za/urn'>somestring</Urn>
Моя реализация GetSchema, которая соответствует атрибуту XmlSchemaProvider, выглядит следующим образом.
Мне нужно иметь возможность генерировать и экспортировать схему.
public static XmlQualifiedName GetSchema(XmlSchemaSet xs)
{
string ns = "http://palantir.co.za/urn";
if (xs.Schemas("http://palantir.co.za/urn").Count != 0)
return new XmlQualifiedName("Urn", ns); // tried many.
XmlSchema schema = new XmlSchema();
schema.Namespaces.Add("xs", XmlSchema.Namespace);
schema.Namespaces.Add("Urn", ns); // tried many prefixes.
schema.ElementFormDefault = XmlSchemaForm.Qualified;
schema.Items.Add(
new XmlSchemaElement() {
Name = "Urn",
SchemaTypeName = XmlSchemaType.GetBuiltInSimpleType(XmlTypeCode.String).QualifiedName
});
schema.TargetNamespace = ns;
xs.Add(schema);
//xs.Compile();
return new XmlQualifiedName("Urn", schema.TargetNamespace);
}
Я получаю следующую ошибку:
The <a href="http://www.w3.org/2001/XMLSchema:schema" rel="nofollow noreferrer">http://www.w3.org/2001/XMLSchema:schema</a> element is not declared..
когда я пытаюсь экспортировать схему.