XSD (схема XML) в основном полезна для проверки и описания форматов XML. Это не то, что вы обычно передаете по моему опыту, часто конечные точки уже имеют Схему под рукой. Если у вас есть контроль над обоими приложениями, что, как я полагаю, у вас есть, вы можете опустить это и просто перейти к XML.
Однако вы можете иметь схему в своем коде C # и проверять XML из части C ++, если по какой-то причине вы ей не доверяете. Кроме того, если вы собираетесь передать этот XML какой-либо третьей стороне, схема также может быть полезна.
Единственное, с чем вы можете столкнуться, это кодировка символов. Вам нужно убедиться, что ваш XML - это utf-8 (или что-то еще, если вы соответственно установили атрибут кодировки в декларации XML, но utf-8 по умолчанию), когда вы передаете его клиенту. Это можно сделать в части C ++ или, возможно, проще в части C #.
Я думаю, что вы правы, что есть ненужный шаг, но, возможно, полезно подумать, хотите ли вы использовать данные из части C ++ в какой-то другой форме, отличной от XML. Возможно, формат, который у вас уже есть, полезен в этих обстоятельствах.
Я включил пример схемы для вас, каждая строка имеет имя, длину и тип:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="row-column-format">
<xs:element name="rows">
<xs:complexType>
<xs:sequence>
<xs:element name="column">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" />
<xs:attribute name="type" type="xs:string" />
<xs:attribute name="length" type="xs:int" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Он описывает формат XML этой структуры:
<?xml version="1.0" encoding="utf-8"?>
<rows xmlns="row-column-format">
<column name="name1" type="type1" length="1" xmlns="">column1</column>
</rows>