Почему вы хотите использовать LINQ в этом сценарии? Как выглядят исходные данные?
Не так много информации, но в любом случае:
Вы можете создать свой XSD, используя подобный код:
XNamespace nsXS = "http://www.w3.org/2001/XMLSchema";
XElement root = new XElement(nsXS + "schema",
new XAttribute("elementFormDefault", "qualified"),
new XAttribute("targetNamespace", "http://schemas.xxx.yy/CRM/2009/01/DeadAnimalReport"),
new XElement(nsXS + "element",
new XElement(nsXS + "simpleType",
new XElement(nsXS + "restriction",
new XAttribute("base", "xs:string")),
new XElement(nsXS + "length", new XAttribute("value", 35)))));
Если у вас есть какие-то объекты, вы можете использовать проекции:
var q =
new XElement(nsXS + "schema",
from s in someObjects
select GetXsdDefinition(s)
);
, где
GetXsdDefinition - это метод, который принимает ваш объект в качестве аргумента и возвращает его определение XSD