1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 1 rof. Cullherme CassolaLo L|nguagem para Crgan|zao e 1ransfernc|a de Dados para Web rof. Gu||herme Casso|ato gulcassolaLo[gmall.com
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 2 rof. Cullherme CassolaLo L Schema
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 3 rof. Cullherme CassolaLo squemas L m esquema xML e uma esLruLura lglca para um documenLo xML Cuando deflnlmos uma esLruLura lglca, deflnlmos um esquema, lsLo e, o con[unLo semlesLruLurado de elemenLos, aLrlbuLos, resLrles e enLldades acelLas em documenLos xML elaborados para um flm deLermlnado Modelos de represenLao de dados baseados em xML so esquemas xML, e.g. 8SS, MaLhML, SvC, kML, xP1ML, eLc u1u e uma Lecnologla para deflnlo de esquemas - uLll, porem com forLes llmlLaes de expresso C esquema xML mals famoso e a xML Schema ueflnlLlon (xSu), que oferece uma esLruLura lglca predeflnlda para a escrlLa de documenLos xML que especlflquem a esLruLura lglca de ouLros documenLos xML de apllcao nesse senLldo, xSu e uma llnguagem para especlflcao de esLruLuras lglcas xML, em xML, que concorrem com as u1us
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 4 rof. Cullherme CassolaLo L Schema Def|n|t|on (SD) m arqulvo xSu e um arqulvo xML que corresponde a especlflcao xML Schema ueflnlLlon - deve ser escrlLo usando-se as Lags predeflnldas desLa llnguagem - e que, por sua vez, consubsLancla um esquema para documenLos xML de apllcao A xML Schema ueflnlLlon (xSu) e uma recomendao da W3C xsd.u1u app1. xsd app2. xsd appn. xsd nasce a llnguagem xML Schema ueflnlLlon (xSu) xml xml xml xml xml rogramadores passam a especlflcar a esLruLura lglca para seus documenLos xML usando xSus em vez de u1us novos valldadores permlLem valldar xMLs conLra esquemas xSus (que, no fundo, Lambem so arqulvos xML)
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 3 rof. Cullherme CassolaLo o Confunda! |crosoft L Data keduced (Dk) AnLes dos xML Schemas da W3C (xSu), [ exlsLla um esquema xML para crlao de esquemas xML, o xML uaLa 8educed (xu8), proposLo pela MlcrosofL Cs arqulvos xu8 funclonavam asslm como os xSu - ambos posslblllLam deflnlr a esLruLura lglca de documenLos xML para flns de especlflcao e valldao A MlcrosofL crlou esLe padro e adoLou lnLernamenLe em seus produLos MlcrosofL SCL Server 2000 e MlcrosofL Cfflce 2000 o uLlllzam no lugar de xSu A MlcrosofL e empresa membro do World Wlde Web ConsorLlum (W3C) e a[udou na especlflcao da xML Schema ueflnlLlon (xSu) ALualmenLe, a xSu e a recomendao da W3C para a deflnlo de esquemas xML e e forLemenLe uLlllzada na lndusLrla, lnclulndo a MlcrosofL que abandonou o suporLe a xu8 e a subsLlLulu pela xSu em seus produLos
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 6 rof. Cullherme CassolaLo squemas L baseados em SD C propslLo dos xML Schemas (xSu) e deflnlr a esLruLura lglca de um documenLo xML, asslm como as u1us m xML Schema (arqulvo xSu): ueflne elemenLos que podem aparecer num documenLo ueflne aLrlbuLos que podem aparecer num documenLo ueflne quals elemenLos so elemenLos fllhos de quals ueflne a ordem de aparlo dos elemenLos ueflne a quanLldade de ocorrnclas dos elemenLos ueflne se um elemenLo e vazlo ou pode lnclulr LexLo ueflne Llpos de dados para os elemenLos e aLrlbuLos ueflne valores padro e flxos para elemenLos e aLrlbuLos L um arqulvo xML, de esLruLura predeflnlda devldamenLe especlflcada (hLLp://www.w3.org/18/xmlschema-0/), que e salvo com a exLenso .xsd
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 7 rof. Cullherme CassolaLo or que usar SD? So essenclalmenLe mals rlcos e mals poderosos que u1us SuporLam Llpos de dados Mals fcll de descrever conLeudos permlLldos no documenLo Mals fcll deflnlr resLrles para os dados (faceLas / Joto focets) LlmlLes (mxlmos e mlnlmos, comprlmenLo, casas declmals, daLas e horas) Lnumeraes adres (Joto pottetos), com suporLe a expresses regulares 1raLamenLo de espaos Melhor conLrole de ocorrncla com ldenLlflcadores mals soflsLlcados Mxlmos e mlnlmos Crdenao AgrupamenLo AlLernaLlvas Melhor suporLe a relaclonamenLos enLre enLldades Mals fcll lnLegrar com slsLemas de gerenclamenLo de bancos de dados Slmpllflcam a valldao de dados de enLrada
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 8 rof. Cullherme CassolaLo or que usar SD? So escrlLos em xML (lnerenLemenLe poderosos na expresso e exLenso) voc no preclsa domlnar uma nova llnguagem voc pode usar um edlLor de xML para edlLar seus arqulvos xSu voc pode usar um parser xML para lnLerpreLar seus arqulvos xSu, pode manlpul-los com xML uCM voc pode Lransformar seus xSus com xSL1 So exLenslvels para fuLuras lmplemenLaes (asslm como Loda llnguagem baseada em xML) voc pode reuLlllzar seu xML Schema denLro de ouLros xML Schemas voc pode crlar seus prprlos Llpos de dados (derlvados dos Llpos de dados naLlvos) voc pode fazer referncla a mulLlplos xSus denLro do mesmo arqulvo xML
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 9 rof. Cullherme CassolaLo Lembre-se! o basta um L estar bem formado (do ponto de v|sta s|ntt|co) Lm um xML slnLaLlcamenLe vlldo... P declarao xML (prlogo) logo no lnlclo P um unlco elemenLo ralz 1ags de aberLura colncldem na grafla com Lags fechamenLo LlemenLos so case-senslLlve 1odos os elemenLos so devldamenLe fechados 1odos os elemenLos so aproprladamenLe anlnhados 1odos os aLrlbuLos esLo enLre aspas sa-se refernclas a enLldades ou sees CuA1A para lncluso de caracLeres especlals (e.g. < >) em melo a valores de LexLo orem, um xML bem formado pode alnda conLer erros Lrros de esLruLura lglca Lrros de valores preenchldos (Llpos de dados, llmlLes, formaLos, eLc)
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 10 rof. Cullherme CassolaLo emp|o note.m| <?xm1 verson="1.0"?> <note> <to>1ove<,to> <1rom>Jan<,1rom> <subect>8emnder<,subect> <body>0on't 1orget me ths weekend!<,body> <,note> note.dtd <!LlLMLu1 note {to,1rom,subect,body)> <!LlLMLu1 to {#C0^1^)> <!LlLMLu1 1rom {#C0^1^)> <!LlLMLu1 subect {#C0^1^)> <!LlLMLu1 body {#C0^1^)>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 12 rof. Cullherme CassolaLo azendo refernc|a a um SD eterno note.m| <?xm1 verson="1.0"?> <!00C1YL note SYS1LM "note.dtd"> <note> <to>1ove<,to> <1rom>Jan<,1rom> <subect>8emnder<,subect> <body>0on't 1orget me ths weekend!<,body> <,note> note.m| <?xm1 verson="1.0"?> <note xm1ns="http:,,www.meuste.com" xm1ns:xs="http:,,www.w2.org,2001,xMl Schema-nstance" xs:schemalocaton="http:,,www.meust e.com note.xsd"> <to>1ove<,to> <1rom>Jan<,1rom> <subect>8emnder<,subect> <body>0on't 1orget me ths weekend!<,body> <,note> CCC kICS k U D1D CCC CS CC SDs AlLernaLlvamenLe: xs:nouamespaceSchemalocaton=note.xsd"
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 13 rof. Cullherme CassolaLo ntendendo a refernc|a ao SD eterno lndlca que o namespace padro do documenLo, l.e. a qual empresa/programa ele perLence note.m| <?xm1 verson="1.0"?> <note xm1ns="http:,,www.meuste.com" xm1ns:xs="http:,,www.w2.org,2001,xMlSchema-nstance" xs:schemalocaton="http:,,www.meuste.com note.xsd"> ... <,note> lndlca que elemenLos e aLrlbuLos ldenLlflcados pelo preflxo xs perLencem ao namespace xMLSchema- lnsLance da W3C, Lal como o aLrlbuLo xs:schemalocaton lndlca o camlnho do arqulvo xsd. Seu valor conLem (separados por um espao): o namespace e o camlnho de faLo do xsd AlLernaLlvamenLe, poderla ser xs:nouamespaceSchemalocaton=note.xsd" para ldenLlflcar o camlnho do xSu sem lnclulr o seu namespace
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 14 rof. Cullherme CassolaLo ntendendo um documento SD C e|emento <schema> <xml version="1.0"> <xs:schema> ... ... </xs:schema> LlemenLo ralz de Lodo xML Schema uenLro dele so declarados 1odos os elemenLos (complexos, slmples e mlsLos) 1odos os aLrlbuLos 1odos os Llpos de dados na Lag de aberLura lnclul aLrlbuLos que especlflcam 1. Cue se LraLa de um xML Schema 2. A qual espao de nomes os xML de lnsLncla deflnldos por esLe xML Schema esLo assoclado (l.e. para qual empresa e/ou programa ele fol felLo) 3. A qual espao de nomes o proprlo xML Schema esL assoclado 4. Se os elemenLos do xML de lnsLncla devem ou no ser quallflcados no namespace ldenLlflcado
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 13 rof. Cullherme CassolaLo tr|butos do e|emento <schema> note.sd <?xm1 verson="1.0"?> <xs:schema xm1ns:xs="http:,,www.w2.org,2001,xMlSchema" targetuamespace="http:,,www.meuste.com" xm1ns="http:,,www.meuste.com" e1ementIorm0e1au1t="qua11ed"> ... <,xs:schema> lndlca que se LraLa de um xML Schema 1ambem especlflca que esLruLuras perLencenLes a esLe namespace sero noLadas com o preflxo xs nesLe xSu lndlca que a qual namespace perLencem os xML de lnsLncla, cu[a esLruLura lglca esL sendo deflnlda nesLe xSu lndlca o espao de nomes ao qual perLence o prprlo arqulvo xSu, que Lambem e um arqulvo xML Lm xML, "quallflcado" slgnlflca "assoclado a um namespace" Lsse aLrlbuLo lndlca se esLruLuras do xML de lnsLncla devem ou no ser quallflcados ("quallfled" ou "unquallfled") nesse caso ("quallfled"), lndlca que Lodos os elemenLos do documenLo xML de lnsLncla devem ser quallflcados no namespace especlflcado em LargeLnamespace
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 16 rof. Cullherme CassolaLo Def|n|ndo e|ementos do L de |nstnc|a mas antes... ke|embrando e|ementos s|mp|es e|ementos comp|eos 1IC SILS ConLem apenas dados uados podem ser de dlferenLes Llpos (padres da llnguagem ou cusLomlzados) uados podem ser faceLados em resLrles (llmlLes e padres regulares) 1IC CCLC ode conLer ouLros elemenLos e/ou aLrlbuLos ode ser de 4 subLlpos: LlemenLos vazlos LlemenLos que conLm apenas ouLros elemenLos LlemenLos que conLm apenas LexLo LlemenLos que conLm LanLo ouLros elemenLos como LexLos (elemenLos mlsLos) (qualsquer desLes subLlpos podem conLer aLrlbuLos Lambem)
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 17 rof. Cullherme CassolaLo Def|n|ndo e|ementos S|ntae bs|ca: <xs:e1ement name="xxx" type="yyy",> <xs:e1ement name="xxx" type="yyy",> Cnde: xxx e o nome do elemenLo yyy e o Llpo do elemenLo Cs Llpos podem ser um dos Llpos de dados naLlvos lrresLrlLos oferecldos pela xML Schema, denLre os quals: xs:sLrlng xs:declmal xs:lnLeger xs:boolean xs:daLe xs:Llme ...ou voc pode deflnlr o seu prprlo Llpo de elemenLo: t|po s|mp|es, cu[o elemenLo acelLar dados baseados nos Llpos naLlvos, porem com alguma resLrlo t|po comp|eo, cu[o elemenLo conLer aLrlbuLos ou elemenLos fllhos
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 18 rof. Cullherme CassolaLo emp|o m| ... <sobrenome>S1va<,sobrenome> <dade>42<,dade> <data_nasc>1970-02-27<,data_nasc> ... sd ... <xs:e1ement name="sobrenome" type="xs:strng",> <xs:e1ement name="dade" type="xs:nteger",> <xs:e1ement name="data_nasc" type="xs:date",> ...
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 19 rof. Cullherme CassolaLo a|ores defau|t e f|os para e|ementos LCkS DUL1 Se nenhum valor fol especlflcado, o valor defaulL (padro) ser aLrlbuldo: <xs:e1ement name="cor" type="xs:strng" de1au1t="verme1ho",> LCkS ICS Se um valor flxo e especlflcado, nenhum ouLro valor pode ser preenchldo no xML: <xs:e1ement name="cor" type="xs:strng" 1xed="verme1ho",>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 20 rof. Cullherme CassolaLo Def|n|ndo atr|butos S|ntae bs|ca: <xs:attrbute name="xxx" type="yyy",> <xs:attrbute name="xxx" type="yyy",> Cnde: xxx e o nome do aLrlbuLo yyy e o Llpo do aLrlbuLo Cs Llpos podem ser um dos Llpos de dados naLlvos lrresLrlLos oferecldos pela xML Schema, denLre os quals: xs:sLrlng xs:declmal xs:lnLeger xs:boolean xs:daLe xs:Llme ...ou voc pode deflnlr o seu prprlo Llpo (slmples) de aLrlbuLo, lmpondo alguma resLrlo ao valor, baseada em um dos Llpos naLlvos oferecldos
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 21 rof. Cullherme CassolaLo emp|o m| ... <sobrenome orgem="8ras1">S1va<,sobrenome> ... sd ... <xs:attrbute name="orgem" type="xs:strng",> ... noLe que, dlferenLe de como fazemos em u1us, uma deflnlo de um aLrlbuLo em xML Schema no carrega lnLernamenLe o nome do elemenLo ao qual o aLrlbuLo perLence. lsso se deve ao faLo de que, em xSus, um aLrlbuLo e deflnldo hlerarqulcamenLe denLro da esLruLura da qual faz parLe. Asslm, ao deflnlrmos uma esLruLura de Llpo complexo para um elemenLo que conLer o aLrlbuLo, deflnlmos o aLrlbuLo denLro do corpo desLa esLruLura.
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 22 rof. Cullherme CassolaLo a|ores defau|t e f|os para atr|butos e Uso opc|ona| ou requer|do LCkS DUL1 Se nenhum valor fol especlflcado, o valor defaulL (padro) ser aLrlbuldo: <xs:attrbute name="orgem" type="xs:strng" de1au1t="8ras1",> LCkS ICS Se um valor flxo e especlflcado, nenhum ouLro valor pode ser preenchldo no xML: <xs:attrbute name="orgem" type="xs:strng" 1xed="8ras1",> USC kUkIDC CU CCICL ALrlbuLos podem ser opclonals (padro) ou requerldos (obrlgaLrlos): <xs:attrbute name="orgem" type="xs:strng" use="requred",>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 23 rof. Cullherme CassolaLo Def|n|o de t|pos <xs:simple1ype name="nome_do_tipo_personalizado"> ... ... restries de comprimento, 1ormatos, padres, valores possiveis, etc ... </xs:simple1ype> 1IC SILS <xs:complex1ype name="nome_do_tipo_personalizado> ... ... identi1icador de obrigatoriedade e ordenao de elementos 1ilhos ... ... de1inio de elementos 1ilhos ... de1inio de atributos ... </xs:complex1ype> 1IC CCLC
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 24 rof. Cullherme CassolaLo Ut|||zando t|pos persona||zados - emp|o: complex1ype <xs:comp1ex1ype name="pessoa"> <xs:sequence> <xs:e1ement name="nome" type="xs:strng",> <xs:e1ement name="sobrenome" type="xs:strng",> <,xs:sequence> <,xs:comp1ex1ype> <xs:e1ement name="empregado" type="pessoa",> <xs:e1ement name="estudante" type="pessoa",> <xs:e1ement name="membro" type="pessoa",> <xs:comp1ex1ype name="pessoa"> <xs:sequence> <xs:e1ement name="nome" type="xs:strng",> <xs:e1ement name="sobrenome" type="xs:strng",> <,xs:sequence> <,xs:comp1ex1ype> <xs:e1ement name="empregado" type="pessoa",> <xs:e1ement name="estudante" type="pessoa",> <xs:e1ement name="membro" type="pessoa",> noLe o reaprovelLamenLo da esLruLura complexa pessoa para vrlos elemenLos <xs:e1ement name="empregado"> <xs:comp1ex1ype> <xs:sequence> <xs:e1ement name="nome" type="xs:strng",> <xs:e1ement name="sobrenome" type="xs:strng",> <,xs:sequence> <,xs:comp1ex1ype> <,xs:e1ement> <xs:e1ement name="empregado"> <xs:comp1ex1ype> <xs:sequence> <xs:e1ement name="nome" type="xs:strng",> <xs:e1ement name="sobrenome" type="xs:strng",> <,xs:sequence> <,xs:comp1ex1ype> <,xs:e1ement> Caso no ha[a necessldade de reaprovelLar a esLruLura em ouLros elemenLos, o Llpo pode ser especlflcado dlreLamenLe denLro da prprla deflnlo do elemenLo em quesLo
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 23 rof. Cullherme CassolaLo Ut|||zando t|pos persona||zados - emp|o: simple1ype <xs:e1ement name="dade"> <xs:smp1e1ype> <xs:restrcton base="xs:nteger"> <xs:mn1nc1usve va1ue="18",> <xs:maxLxc1usve va1ue="60",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="dade"> <xs:smp1e1ype> <xs:restrcton base="xs:nteger"> <xs:mn1nc1usve va1ue="18",> <xs:maxLxc1usve va1ue="60",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> LsLabelece uma resLrlo (Joto focet) baseada no Llpo naLlvo xs:nteger - valor LexLual do elemenLo dade deve ser um numero lnLelro malor ou lgual a 18 e menor do que 60 1lpo Lambem poderla Ler sldo declarado fora da esLruLura do elemenLo ldade, para poder ser reaprovelLado em ouLros elemenLos <xs:e1ement name="dade" type="1axa_adu1ta",> <xs:smp1e1ype name="1axa_adu1ta"> <xs:restrcton base="xs:nteger"> <xs:mn1nc1usve va1ue="18",> <xs:maxLxc1usve va1ue="60",> <,xs:restrcton> <,xs:smp1e1ype> <xs:e1ement name="dade" type="1axa_adu1ta",> <xs:smp1e1ype name="1axa_adu1ta"> <xs:restrcton base="xs:nteger"> <xs:mn1nc1usve va1ue="18",> <xs:maxLxc1usve va1ue="60",> <,xs:restrcton> <,xs:smp1e1ype>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 26 rof. Cullherme CassolaLo acetas () - restr|es para t|pos de dados aceta Descr|o enumerat|on ueflne uma llsLa de valores acelLos fract|onD|g|ts Lspeclflca um numero mxlmo de casas declmals acelLas. ueve ser malor ou lgual a zero. |ength Lspeclflca o numero exaLo de caracLeres ou lLens de llsLa acelLos. ueve ser malor ou lgual a zero. mac|us|ve Lspeclflca um llmlLe superlor para um valor numerlco (o valor deve menor do que esse llmlLe) maInc|us|ve Lspeclflca um llmlLe superlor para um valor numerlco (o valor deve menor ou lgual a esse llmlLe) maLength Lspeclflca o numero mxlmo de caracLeres ou lLens de llsLa acelLos. ueve ser malor ou lgual a zero. m|nc|us|ve Lspeclflca um llmlLe lnferlor para um valor numerlco (o valor deve malor do que esse llmlLe) m|nInc|us|ve Lspeclflca um llmlLe lnferlor para um valor numerlco (o valor deve malor ou lgual a esse llmlLe) m|nLength Lspeclflca o numero mlnlmo de caracLeres ou lLens de llsLa acelLos. ueve ser malor ou lgual a zero. pattern ueflne uma expresso regular que denoLa o con[unLo de valores acelLos tota|D|g|ts Lspeclflca o numero exLado de dlglLos acelLo. ueve ser malor do que zero wh|teSpace Lspeclflca como espaos brancos (llne feeds, Labs, espaos, e carrlage reLurns) so LraLados 8esLrlngem o con[unLo de valores LexLuals posslvels para uma esLruLura de Llpo slmples (elemenLo ou aLrlbuLo), baseando-se em um dos Llpos naLlvos oferecldos pela xML Schema
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 28 rof. Cullherme CassolaLo emp|o de faceta - enumerao de va|ores poss|ve|s <xs:e1ement name="carro"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:enumeraton va1ue="^ud",> <xs:enumeraton va1ue="6o11",> <xs:enumeraton va1ue="8MW",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="carro"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:enumeraton va1ue="^ud",> <xs:enumeraton va1ue="6o11",> <xs:enumeraton va1ue="8MW",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 29 rof. Cullherme CassolaLo emp|o de faceta - um n|co caractere de a <xs:e1ement name="1etra"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="j^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="1etra"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="j^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 30 rof. Cullherme CassolaLo emp|o de faceta - trs caracteres consecut|vos de a (ma|scu|os) <xs:e1ement name="ncas"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="j^-2j^-2j^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="ncas"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="j^-2j^-2j^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 31 rof. Cullherme CassolaLo emp|o de faceta - trs caracteres consecut|vos de a (ma|scu|os ou m|nscu|os) <xs:e1ement name="ncas"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="ja-z^-2ja-z^-2ja-z^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="ncas"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="ja-z^-2ja-z^-2ja-z^-2",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 32 rof. Cullherme CassolaLo emp|o de faceta - qua|quer dos segu|ntes caracteres: " "y ou "z <xs:e1ement name="esco1ha"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="jxyz",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="esco1ha"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="jxyz",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 33 rof. Cullherme CassolaLo emp|o de faceta - S d|g|tos numr|cos consecut|vos <xs:e1ement name="d_produto"> <xs:smp1e1ype> <xs:restrcton base="xs:nteger"> <xs:pattern va1ue="j0-9j0-9j0-9j0-9j0-9",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="d_produto"> <xs:smp1e1ype> <xs:restrcton base="xs:nteger"> <xs:pattern va1ue="j0-9j0-9j0-9j0-9j0-9",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 34 rof. Cullherme CassolaLo emp|o de faceta - zero ou ma|s ocorrnc|as de qua|squer |etras de "a a "z (m|nscu|as) <xs:e1ement name="1etras"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="{ja-z)*",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="1etras"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="{ja-z)*",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 33 rof. Cullherme CassolaLo emp|o de faceta - uma ou ma|s ocorrnc|a de pares de |etras onde a pr|me|ra |etra de cada par uma |etra est em a-z (m|nscu|a) e a segunda |etra est em - (ma|scu|a) <xs:e1ement name="pares"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="{ja-zj^-2)+",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="pares"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="{ja-zj^-2)+",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> C exemplo aclma acelLarla palavras como "pAlAv8a", mas no acelLarla "palavra" ou "alavra" ou "ALAv8A"
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 36 rof. Cullherme CassolaLo emp|o de faceta - um va|or de teto entre duas opes <xs:e1ement name="sexo"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="masc|1em",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="sexo"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="masc|1em",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> C exemplo aclma equlvale (em vez de usar pattern) a Ler uma enumerao de valores Lal como: <xs:enumeraton va1ue="masc",> <xs:enumeraton va1ue="1em",>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 37 rof. Cullherme CassolaLo emp|o de faceta - senha com prec|samente 8 caracteres contendo |etras a-z (m|nscu|as) |etras - (ma|scu|as) e]ou d|g|tos de 0-9 <xs:e1ement name="senha"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="ja-z^-20-9{8)",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement> <xs:e1ement name="senha"> <xs:smp1e1ype> <xs:restrcton base="xs:strng"> <xs:pattern va1ue="ja-z^-20-9{8)",> <,xs:restrcton> <,xs:smp1e1ype> <,xs:e1ement>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 38 rof. Cullherme CassolaLo emp|o de faceta - tratamento de espaos em branco <xs:smp1e1ype name="epacos_preservados"> <xs:restrcton base="xs:strng"> <xs:whteSpace va1ue="preserve",> <,xs:restrcton> <,xs:smp1e1ype> <xs:smp1e1ype name="epacos_preservados"> <xs:restrcton base="xs:strng"> <xs:whteSpace va1ue="preserve",> <,xs:restrcton> <,xs:smp1e1ype> valores posslvels para a faceLa do Llpo whteSpace: preserve: fora o parser a manLer os espaos em brancos conforme preenchldos no xML replace: subsLlLul Lodas as formas de espaos em branco (oe feeJs, tobs, espaos e cottoqe tetotos) por espaos collapse: faz Lodas as subsLlLules da opo "replace" e alnda colapsam sequnclas conLlguas de espaos num unlco caracLere de espao, espaos lnlclals e flnals so deleLados
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 39 rof. Cullherme CassolaLo emp|o de faceta - str|ng com prec|samente 8 caracteres <xs:smp1e1ype name="str8"> <xs:restrcton base="xs:strng"> <xs:1ength va1ue="8",> <,xs:restrcton> <,xs:smp1e1ype> <xs:smp1e1ype name="str8"> <xs:restrcton base="xs:strng"> <xs:1ength va1ue="8",> <,xs:restrcton> <,xs:smp1e1ype>
L|nguagem para Crgan|zao e 1ransf. de Dados para Web
1ecnologla em Anllse e uesenvolvlmenLo de SlsLemas 40 rof. Cullherme CassolaLo emp|o de faceta - str|ng no m|n|mo S e no m|mo 8 caracteres <xs:smp1e1ype name="strS-8"> <xs:restrcton base="xs:strng"> <xs:mnlength va1ue="S",> <xs:maxlength va1ue="8",> <,xs:restrcton> <,xs:smp1e1ype> <xs:smp1e1ype name="strS-8"> <xs:restrcton base="xs:strng"> <xs:mnlength va1ue="S",> <xs:maxlength va1ue="8",> <,xs:restrcton> <,xs:smp1e1ype>