Validação de arquivo XML com XSD

Pessoal,

estou utilizando uma validação de arquivo xml com o xsd, porém quando o meu VALOR possui & (comercial) o arquivo XML não passa na validação alguém poderia me dizer se já passou por isso? e como resolveu?

abaixo o arquivo xml que não passou na validação

<?xml version="1.0" encoding="UTF-8"?>
	<GE_DEC>	
	<DADOS_GEDEC mes="6" ano = "2011">
	<CARGA_GEDEC cdUsina="10019">
	<VALORES valor ="!@#$%,¨&*()">
	</VALORES>
	</CARGA_GEDEC>
	</DADOS_GEDEC>
	<DADOS_GEDEC mes="7" ano = "2011">
	<CARGA_GEDEC cdUsina="10019">
	<VALORES valor ="1,00000">
	</VALORES>
	</CARGA_GEDEC>
	</DADOS_GEDEC>
	<DADOS_GEDEC mes="8" ano = "2011">
	<CARGA_GEDEC cdUsina="10019">
	<VALORES valor ="10,00000">
	</VALORES>
	</CARGA_GEDEC>
	</DADOS_GEDEC>
	</GE_DEC>

abaixo meu arquivo XSD utilizado para validação.

<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="GE_DEC">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="DADOS_GEDEC" maxOccurs="unbounded">
		    <xsd:complexType>
		      <xsd:sequence>
		        <xsd:element name="CARGA_GEDEC" nillable="false" maxOccurs="unbounded">
				    <xsd:complexType>
				      <xsd:sequence>
				          <xsd:element name="VALORES">
						    <xsd:complexType mixed="true">
						      <xsd:attribute name="valor" type="xsd:string" use="required"/>
						    </xsd:complexType>
						  </xsd:element>  
				      </xsd:sequence>
				      <xsd:attribute name="cdUsina" type="xsd:string" use="required"/>
				    </xsd:complexType>
			  	</xsd:element>
		      </xsd:sequence>
		      <xsd:attribute name="ano" type="xsd:integer"  use="required"/>
		      <xsd:attribute name="mes"  use="required">
		      	<xsd:simpleType>
					<xsd:restriction base="xsd:integer">
					    <xsd:minInclusive value="1"/>
						<xsd:maxInclusive value="12"/>
					</xsd:restriction>
				</xsd:simpleType>
		      </xsd:attribute>
		    </xsd:complexType>
		  </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

Como vocês podem ver o valor é string e não está aceitando o caracter ‘&’ é só eu remover esse caracter do meu XML que o arquivo passa na validação.

troque o & por pela expressão

& amp ;

mas sem os espaços

Há 5 caracteres especiais que nunca podem ser usados no xml. Em vez disso deves usar:

    &amp; - &amp;amp;
    &lt; - &amp;lt;
     &gt; - &amp;gt;
    &quot; - &amp;quot;
     &apos; - &amp;apos; 

Entendi, agora me tira uma dúvida sabe onde posso encontrar alguma especificação do XML onde me diga quais caracteres que não podem ser usados?

Esse site tem tudo o que você precisa saber sobre os padrões da Web:

http://www.w3schools.com/