XPath em XSD

0 respostas
rocha

Olá Pessoal,

Estou definindo um xsd onde tenho um nó type e quero que o name do mesmo seja chave, estou definindo o mesmo da seguinte maneira:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http://www.rrochas.com/kplanoo/xsd/KPlanOO" xmlns:kp="http://www.rrochas.com/kplanoo/xsd/KPlanOO"
	elementFormDefault="qualified">

	<xsd:element name="KPlannOO">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="Domain" type="kp:Domain" maxOccurs="1" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:complexType name="Domain">
		<xsd:sequence>
			<xsd:element name="Types" type="kp:tTypes" maxOccurs="1"
				minOccurs="1"/>	
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="tTypes">
		<xsd:sequence>
			<xsd:element name="type" type="kp:tType" maxOccurs="unbounded"
				minOccurs="1">
				
				<xsd:key name="pkType">
					<xsd:selector xpath="type" />
					<xsd:field xpath="@name" />
				</xsd:key>
				
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>

	<xsd:complexType name="tType">
		<xsd:attribute name="name" type="xsd:string" use="required" />
		<xsd:attribute name="description" type="xsd:string" use="optional" />
	</xsd:complexType>

</xsd:schema>

porém a cláusula não está funcionando, já tentei coloca-la em outro contexto e escopo mas não funcionou, desconfiei de problemas na navegação do nó já tentei várias possibilidades e não deu certo, alguém saberia me dizer o que é preciso para que um xml como abaixo seja rejeitado

<?xml version="1.0" encoding="UTF-8"?>
<kp:KPlannOO xmlns:kp="http://www.rrochas.com/kplanoo/xsd/KPlanOO" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.rrochas.com/kplanoo/xsd/KPlanOO KPlanOOSchema.xsd ">
  <kp:Domain>
    <kp:Types>
      <kp:type name="a"/> 
      <kp:type name="a"/>        
    </kp:Types>
  </kp:Domain>
</kp:KPlannOO>

Valeu,

Criado 26 de fevereiro de 2009
Respostas 0
Participantes 1