zecapistolas 0 Posted March 26, 2011 Report Share Posted March 26, 2011 Viva, Tenho o seguinte exemplo: <?xml version="1.0" encoding="UTF-8"?> <empresa> <sector_informatico> <funcionario nome="Luis" /> <funcionario nome="Ze" /> </sector_informatico> <sector_marketing> <funcionario nome="Joao" morada="Porto" idade="24" /> <funcionario nome="Manuel" morada="Lisboa" idade="22" /> </sector_marketing> </empresa> XML Schema: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="empresa" type="empresa_type" /> <xs:complexType name="empresa_type"> <xs:sequence> <xs:element name="sector_informatico" type="sI_type"/> <xs:element name="sector_marketing" type="sM_type"/> </xs:sequence> </xs:complexType> <xs:complexType name="sI_type"> <xs:sequence> <xs:element name="funcionario" type="funcionario_type"/> </xs:sequence> </xs:complexType> <xs:complexType name="sM_type"> <xs:sequence> <xs:element name="funcionario" type="funcionario_type"/> </xs:sequence> </xs:complexType> <xs:complexType name="funcionario_type"> <xs:attribute name="nome" type="xs:string"/> ou será que deverá ter 3 atributos </xs:complexType> </xs:schema> Se repararem no sector_informatico tenho definido funcionario, mas no sector_marketing também tenho funcionario definido de maneira diferente! Eu quero que o nome do elemento seja o mesmo ( funcionario ), mas queria definir um namespace para o funcionario do sector_informatico e outro para o funcionario do sector_marketing, para depois no XML-Schema poder diferenciar os dois, como faço isso? cumps Link to post Share on other sites
Rui Carlos 359 Posted March 26, 2011 Report Share Posted March 26, 2011 Acho que precisas de separar o XML schema em vários ficheiros, e depois usar o <xsd:import />. Mas tens algum motivo em particular para fazer isso? Assim à primeira vista não há necessidade de fazer isso, basta colocares atributos como opcionais (a menos que queiras que num caso os atributos seja todos obrigatórios e no outro opcionais). Rui Carlos Gonçalves Link to post Share on other sites
zecapistolas 0 Posted March 26, 2011 Author Report Share Posted March 26, 2011 Acho que precisas de separar o XML schema em vários ficheiros, e depois usar o <xsd:import />. Vou averiguar isso, mas não existirá outra forma? Mas tens algum motivo em particular para fazer isso? Assim à primeira vista não há necessidade de fazer isso, basta colocares atributos como opcionais (a menos que queiras que num caso os atributos seja todos obrigatórios e no outro opcionais). Exacto, quero que num sector_informatico seja apenas obrigatório o nome, mas no sector_marketing já quero que os campos nome, morada e idade sejam obrigatórios. cumps Link to post Share on other sites
Rui Carlos 359 Posted March 26, 2011 Report Share Posted March 26, 2011 Vou averiguar isso, mas não existirá outra forma? Penso que só podes ter um (target)namespace por ficheiro, por isso precisarás de um schema por (target)namespace. Só não estou certo se precises do import. Mas já há uns anos que não trabalho regularmente com XML, por isso, não te consigo ajudar muito mais. Rui Carlos Gonçalves Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now