Схема XSD: использование нескольких xmime с ожидаемым типом содержимого - PullRequest
0 голосов
/ 30 марта 2012

У меня есть XSD \ схема с элементом (как показано ниже).Ожидается, что этот элемент будет иметь данные CSV или XML.Я не уверен, что ожидаемый ContentTypes использовать.Я могу думать о следующем, но не уверен:

текст / *

* / *

<xs:element name="Data" type="xs:base64Binary" xmime:expectedContentTypes="text/*"/>

или есть какой-то другой способ?как

"text / csv; text / xml"

1 Ответ

1 голос
/ 30 марта 2012

Строго говоря, ваш элемент Тип данных должен быть производным от xmime: base64Binary. text/* является правильным, или text/csv,text/xml - вместо него следует использовать запятую.

Однако зачем использовать двоичное кодирование, когда вы отправляете текст? Необходимо учитывать размер сообщения. При кодировании base64 ваш результат будет содержать около 30% накладных расходов.

Рассматривали ли вы этот XSD:

<?xml version="1.0" encoding="utf-8" ?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<xsd:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="Data">
        <xsd:complexType mixed="true">
            <xsd:sequence>
                <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>

Любой XML ниже будет работать одинаково; XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns="http://tempuri.org/XMLSchema.xsd">
     <something></something>
</Data>

CSV:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns="http://tempuri.org/XMLSchema.xsd">
    A,B,B
    1,2,3
</Data>

Другими словами, у вас может быть XML, CSV или оба. Если вы не хотите и того, и другого, есть приемы, обеспечивающие более строгую типизацию данных.

...