Deserilazation of Object with collection property Options

N

nadeem

I have a master class suppose Pubisher which contains UserObject as
property.
This UserObject has UserAlertsCollection.

I execute store procedure


CREATE [dbo].[PROC_PUBLISHER_SELECT_BY_PUBLISHERID]
(
@PublisherID AS NUMERIC(18,0)


)
AS


SELECT



Publisher.PublisherId,
Publisher.PartnerId AS
PublisherPartnerId,
Publisher.UserId AS
PublisherUserId,
Publisher.[Name],

Publisher.PhoneNumber,
Publisher.Email,

Publisher.Description,

Publisher.IsModifyTraffickingEnabled,

Publisher.IsModifyApprovedAdsEnabled,
Publisher.DateCreated
AS PublisherDateCreated,
Publisher.DateModified
AS PublisherDateModified,
Publisher.IsDeleted AS
PublisherIsDeleted,
UserObject.UserID,
UserObject.PartnerID,
UserObject.UserName,
--
UserObject.Password,
UserObject.IsEnabled,

UserObject.DateCreated,

UserObject.DateModified,
UserObject.IsDeleted,



UserAlerts.UserAlertsID ,

UserAlerts.UserAlertID ,
UserAlerts.UserID ,

UserAlerts.IsEnabled ,

UserAlerts.DateCreated ,

UserAlerts.DateModified ,
UserAlerts.IsDeleted


FROM Publisher


INNER JOIN [User] AS UserObject
ON UserObject.UserID=Publisher.UserID


INNER JOIN UserAlerts AS UserAlerts
ON UserObject.UserID=UserAlerts.UserID
WHERE
Publisher.PublisherId=@PublisherID


FOR XML AUTO , TYPE, ELEMENTS, ROOT('ArrayOfPublisher')


Which returns xml in following pattern


<ArrayOfPublisher>
<Publisher>
<PublisherId>1</PublisherId>
<PublisherPartnerId>1</PublisherPartnerId>
<PublisherUserId>36</PublisherUserId>
<Name>Publisher 1 Ltd</Name>
<PhoneNumber>"100-34343"</PhoneNumber>
<Email>"info@global_ad.com"</Email>
<Description>"Emerging company"</Description>
<PublisherDateCreated>2008-02-13T17:17:17.747</
PublisherDateCreated>
<PublisherDateModified>2008-02-13T17:17:17.747</
PublisherDateModified>
<PublisherIsDeleted>0</PublisherIsDeleted>
<UserObject>
<UserID>36</UserID>
<PartnerID>1</PartnerID>
<UserName>345</UserName>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
<UserAlerts>
<UserAlertsID>39</UserAlertsID>
<UserAlertID>2</UserAlertID>
<UserID>36</UserID>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
</UserAlerts>
<UserAlerts>
<UserAlertsID>40</UserAlertsID>
<UserAlertID>2</UserAlertID>
<UserID>36</UserID>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
</UserAlerts>
</UserObject>
</Publisher>
</ArrayOfPublisher>


But I want the following pattern


<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfPublisher xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Publisher>
<Number>1</Number>
<PublisherPartnerID>1</PublisherPartnerID>
<PublisherUserID>1</PublisherUserID>
<Name>test</Name>
<PhoneNumber>12344</PhoneNumber>
<EmailAddress>[email protected]</EmailAddress>
<Description>This is testing of data</Description>
<IsModifyTraffickingEnabled>true</IsModifyTraffickingEnabled>
<IsModifyApprovedAdsEnabled>true</IsModifyApprovedAdsEnabled>
<PublisherIsDeleted>false</PublisherIsDeleted>
<PublisherDateCreated>2008-03-01T00:00:00+05:00</
PublisherDateCreated>
<PublisherDateModified>2008-03-01T00:00:00+05:00</
PublisherDateModified>
- <UserObject>
<Number>0</Number>
<PartnerID>0</PartnerID>
<UserName>test1</UserName>
<Password>323343</Password>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>0001-01-01T00:00:00</DateCreated>
<DateModified>0001-01-01T00:00:00</DateModified>
- <UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
</UserAlerts>
- <UserRolesCollectionObject>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
</UserRolesCollectionObject>
</UserObject>
</Publisher>
- <Publisher>
<Number>2</Number>
<PublisherPartnerID>2</PublisherPartnerID>
<PublisherUserID>1</PublisherUserID>
<Name>test2</Name>
<PhoneNumber>2</PhoneNumber>
<EmailAddress>[email protected]</EmailAddress>
<Description>This is testing of data</Description>
<IsModifyTraffickingEnabled>true</IsModifyTraffickingEnabled>
<IsModifyApprovedAdsEnabled>true</IsModifyApprovedAdsEnabled>
<PublisherIsDeleted>false</PublisherIsDeleted>
<PublisherDateCreated>2008-03-01T00:00:00+05:00</
PublisherDateCreated>
<PublisherDateModified>2008-03-01T00:00:00+05:00</
PublisherDateModified>
- <UserObject>
<Number>0</Number>
<PartnerID>0</PartnerID>
<UserName>test1</UserName>
<Password>323343</Password>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>0001-01-01T00:00:00</DateCreated>
<DateModified>0001-01-01T00:00:00</DateModified>
- <UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
</UserAlerts>
- <UserRolesCollectionObject>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
</UserRolesCollectionObject>
</UserObject>
</Publisher>
</ArrayOfPublisher>


Note there is an extra node of UserAlerts which is missing in the
first one
Any help regarding this issue.


I am using vb.net2005


Advance Thanks
mna_4u(at)hotmail.com
 
S

sloan

microsoft.public.sqlserver.programming
would probably be a more germane newsgroup.



nadeem said:
I have a master class suppose Pubisher which contains UserObject as
property.
This UserObject has UserAlertsCollection.

I execute store procedure


CREATE [dbo].[PROC_PUBLISHER_SELECT_BY_PUBLISHERID]
(
@PublisherID AS NUMERIC(18,0)


)
AS


SELECT



Publisher.PublisherId,
Publisher.PartnerId AS
PublisherPartnerId,
Publisher.UserId AS
PublisherUserId,
Publisher.[Name],

Publisher.PhoneNumber,
Publisher.Email,

Publisher.Description,

Publisher.IsModifyTraffickingEnabled,

Publisher.IsModifyApprovedAdsEnabled,
Publisher.DateCreated
AS PublisherDateCreated,
Publisher.DateModified
AS PublisherDateModified,
Publisher.IsDeleted AS
PublisherIsDeleted,
UserObject.UserID,
UserObject.PartnerID,
UserObject.UserName,
--
UserObject.Password,
UserObject.IsEnabled,

UserObject.DateCreated,

UserObject.DateModified,
UserObject.IsDeleted,



UserAlerts.UserAlertsID ,

UserAlerts.UserAlertID ,
UserAlerts.UserID ,

UserAlerts.IsEnabled ,

UserAlerts.DateCreated ,

UserAlerts.DateModified ,
UserAlerts.IsDeleted


FROM Publisher


INNER JOIN [User] AS UserObject
ON UserObject.UserID=Publisher.UserID


INNER JOIN UserAlerts AS UserAlerts
ON UserObject.UserID=UserAlerts.UserID
WHERE
Publisher.PublisherId=@PublisherID


FOR XML AUTO , TYPE, ELEMENTS, ROOT('ArrayOfPublisher')


Which returns xml in following pattern


<ArrayOfPublisher>
<Publisher>
<PublisherId>1</PublisherId>
<PublisherPartnerId>1</PublisherPartnerId>
<PublisherUserId>36</PublisherUserId>
<Name>Publisher 1 Ltd</Name>
<PhoneNumber>"100-34343"</PhoneNumber>
<Email>"info@global_ad.com"</Email>
<Description>"Emerging company"</Description>
<PublisherDateCreated>2008-02-13T17:17:17.747</
PublisherDateCreated>
<PublisherDateModified>2008-02-13T17:17:17.747</
PublisherDateModified>
<PublisherIsDeleted>0</PublisherIsDeleted>
<UserObject>
<UserID>36</UserID>
<PartnerID>1</PartnerID>
<UserName>345</UserName>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
<UserAlerts>
<UserAlertsID>39</UserAlertsID>
<UserAlertID>2</UserAlertID>
<UserID>36</UserID>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
</UserAlerts>
<UserAlerts>
<UserAlertsID>40</UserAlertsID>
<UserAlertID>2</UserAlertID>
<UserID>36</UserID>
<IsEnabled>1</IsEnabled>
<DateCreated>2008-02-13T17:17:17.747</DateCreated>
<DateModified>2008-02-13T17:17:17.747</DateModified>
<IsDeleted>0</IsDeleted>
</UserAlerts>
</UserObject>
</Publisher>
</ArrayOfPublisher>


But I want the following pattern


<?xml version="1.0" encoding="utf-8" ?>
- <ArrayOfPublisher xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Publisher>
<Number>1</Number>
<PublisherPartnerID>1</PublisherPartnerID>
<PublisherUserID>1</PublisherUserID>
<Name>test</Name>
<PhoneNumber>12344</PhoneNumber>
<EmailAddress>[email protected]</EmailAddress>
<Description>This is testing of data</Description>
<IsModifyTraffickingEnabled>true</IsModifyTraffickingEnabled>
<IsModifyApprovedAdsEnabled>true</IsModifyApprovedAdsEnabled>
<PublisherIsDeleted>false</PublisherIsDeleted>
<PublisherDateCreated>2008-03-01T00:00:00+05:00</
PublisherDateCreated>
<PublisherDateModified>2008-03-01T00:00:00+05:00</
PublisherDateModified>
- <UserObject>
<Number>0</Number>
<PartnerID>0</PartnerID>
<UserName>test1</UserName>
<Password>323343</Password>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>0001-01-01T00:00:00</DateCreated>
<DateModified>0001-01-01T00:00:00</DateModified>
- <UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
</UserAlerts>
- <UserRolesCollectionObject>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
</UserRolesCollectionObject>
</UserObject>
</Publisher>
- <Publisher>
<Number>2</Number>
<PublisherPartnerID>2</PublisherPartnerID>
<PublisherUserID>1</PublisherUserID>
<Name>test2</Name>
<PhoneNumber>2</PhoneNumber>
<EmailAddress>[email protected]</EmailAddress>
<Description>This is testing of data</Description>
<IsModifyTraffickingEnabled>true</IsModifyTraffickingEnabled>
<IsModifyApprovedAdsEnabled>true</IsModifyApprovedAdsEnabled>
<PublisherIsDeleted>false</PublisherIsDeleted>
<PublisherDateCreated>2008-03-01T00:00:00+05:00</
PublisherDateCreated>
<PublisherDateModified>2008-03-01T00:00:00+05:00</
PublisherDateModified>
- <UserObject>
<Number>0</Number>
<PartnerID>0</PartnerID>
<UserName>test1</UserName>
<Password>323343</Password>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>0001-01-01T00:00:00</DateCreated>
<DateModified>0001-01-01T00:00:00</DateModified>
- <UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
- <UserAlerts>
<UserAlertsID>0</UserAlertsID>
<UserAlertsUserID>1</UserAlertsUserID>
<UserAlertID>1</UserAlertID>
<UserAlertsIsEnabled>false</UserAlertsIsEnabled>
<UserAlertsIsDeleted>false</UserAlertsIsDeleted>
<UserAlertsDateCreated>2008-03-01T00:00:00+05:00</
UserAlertsDateCreated>
<UserAlertsDateModified>2008-03-01T00:00:00+05:00</
UserAlertsDateModified>
</UserAlerts>
</UserAlerts>
- <UserRolesCollectionObject>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
- <UserRoles>
<Number>0</Number>
<UserID>1</UserID>
<UserRoleID>1</UserRoleID>
<IsEnabled>false</IsEnabled>
<IsDeleted>false</IsDeleted>
<DateCreated>2008-03-01T00:00:00+05:00</DateCreated>
<DateModified>2008-03-01T00:00:00+05:00</DateModified>
</UserRoles>
</UserRolesCollectionObject>
</UserObject>
</Publisher>
</ArrayOfPublisher>


Note there is an extra node of UserAlerts which is missing in the
first one
Any help regarding this issue.


I am using vb.net2005


Advance Thanks
mna_4u(at)hotmail.com
 
Top