Строковое значение XML как exponetial становится float - PullRequest
0 голосов
/ 10 сентября 2018

У меня проблема с чтением значения xml, например '111e1', в качестве строкового типа. Я пытаюсь создать схему xsd из xml, как показано ниже, используя стандартный C # XmlReader:

`
   XmlReaderSettings readerSettings = new XmlReaderSettings();
        readerSettings.XmlResolver = null;
        using (XmlReader reader = XmlReader.Create(sourcexmlpath, readerSettings))
        {
            XmlSchemaSet schemaSet = new XmlSchemaSet();
            XmlSchemaInference schema = new XmlSchemaInference();
            schemaSet = schema.InferSchema(reader);
            using (TextWriter writer = File.CreateText(xsdpath))
            {
                foreach (XmlSchema s in schemaSet.Schemas())
                {
                    s.Write(writer);
                }
                writer.Close();
            }
            reader.Close();
        }
`

Исходный XML-файл:

`<?xml version="1.0" encoding="utf-8"?>
    <Document>
      <example>
        <testvalue>34551E10</testvalue>
    </example>
 </Document>
`

И я получил тип поплавка:

`<?xml version="1.0" encoding="utf-8"?>
    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:element name="Document">
         <xs:complexType>
           <xs:sequence>
             <xs:element maxOccurs="unbounded" name="example">
               <xs:complexType>
                 <xs:sequence>
                   <xs:element name="testvalue" type="xs:float" />             
                 </xs:sequence>
              </xs:complexType>
             </xs:element>
           </xs:sequence>
         </xs:complexType>
       </xs:element>
     </xs:schema>`

Проблема существует, если значение состоит из числа и только одного алфавита 'e' между ними (проблема исчезает для других букв), например: 1е111, 11е11, 111е1 но у нас не будет этой проблемы, если буква в начале и конце, как e11111, 11111e.

Как я могу предотвратить чтение значения как тип с плавающей точкой? Возможно ли это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...