Я пользуюсь услугами WCF Data.
Свойство фида по умолчанию для объекта в моей службе OData:
<feed xml:base="http://localhost:54527/DataModel.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
Как я могу добавить свои собственные пространства имен в этот список в свойстве канала?
Я пытаюсь сделать мой сервис odata совместимым с GeoRSS, я добавил несколько EntityPropertyMappingAttribute, чтобы сделать данные совместимыми, но они не распознаются используемым нами инструментом.
Прямо сейчас он производит это:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <feed xml:base="http://localhost:54527/DataModel.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> <title type="text">Collars</title> <id>http://localhost:54527/DataModel.svc/Collars</id> <updated>2011-11-07T09:23:05Z</updated> <link rel="self" title="Collars" href="Collars" /> <entry> <id>http://localhost:54527/DataModel.svc/Collars(HOLEID='ABL001',PROJECTCODE='ACA')</id> <title type="text"></title> <updated>2011-11-07T09:23:05Z</updated> <author> <name /> </author> <link rel="edit" title="Collar" href="Collars(HOLEID='ABL001',PROJECTCODE='ACA')" /> <category term="Neo.Collar" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:HOLEID>ABL001</d:HOLEID> <d:PROJECTCODE>ACA</d:PROJECTCODE> <d:TENEMENTID>5853</d:TENEMENTID> <d:LAT>116.49531406</d:LAT> <d:LONG>-21.65159678</d:LONG> </m:properties> </content> <geo:lat xmlns:geo="http://www.georss.org/georss">116.49531406</geo:lat> <geo:long xmlns:geo="http://www.georss.org/georss">-21.65159678</geo:long> </entry>
Но я бы предпочел, чтобы пространство имен geo было вверху:
<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?> <feed xml:base="http://localhost:54527/DataModel.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom" xmlns:geo="http://www.georss.org/georss"> <title type="text">Collars</title> <id>http://localhost:54527/DataModel.svc/Collars</id> <updated>2011-11-07T09:23:05Z</updated> <link rel="self" title="Collars" href="Collars" /> <entry> <id>http://localhost:54527/DataModel.svc/Collars(HOLEID='ABL001',PROJECTCODE='ACA')</id> <title type="text"></title> <updated>2011-11-07T09:23:05Z</updated> <author> <name /> </author> <link rel="edit" title="Collar" href="Collars(HOLEID='ABL001',PROJECTCODE='ACA')" /> <category term="Neo.Collar" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> <content type="application/xml"> <m:properties> <d:HOLEID>ABL001</d:HOLEID> <d:PROJECTCODE>ACA</d:PROJECTCODE> <d:TENEMENTID>5853</d:TENEMENTID> <d:LAT>116.49531406</d:LAT> <d:LONG>-21.65159678</d:LONG> </m:properties> </content> <geo:lat>116.49531406</geo:lat> <geo:long>-21.65159678</geo:long> </entry>
Я мог бы пойти по этому пути совершенно неправильно. Спасибо.
В настоящее время в службах данных WCF нет возможности сделать это.Сопоставление свойств объекта работает локально (для элемента, с которым оно сопоставлено), и у него нет возможности указать, что некоторые пространства имен должны быть объявлены заранее.