Eu tenho este dtd: http://fast-code.sourceforge.net/template.dtd Mas quando incluo em um xml, recebo o aviso: Nenhuma restrição gramatical (esquema DTD ou XML) detectada para o documento. O xml é:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE templates PUBLIC "//UNKNOWN/" "http://fast-code.sourceforge.net/template.dtd">
<templates>
<template type="INSTANCE_OF_CLASS">
<description>Used to Create instance of class</description>
<variation>asasa</variation>
<variation-field>asasa</variation-field>
<class-pattern>asasa</class-pattern>
<getter-setter>setter</getter-setter>
<allowed-file-extensions>java</allowed-file-extensions>
<number-required-classes>1</number-required-classes>
<allow-multiple-variation>false</allow-multiple-variation>
<template-body>
<![CDATA[
// Creating new instance of ${class_name}
final ${class_name} ${instance} = new ${class_name}();
#foreach ($field in ${fields})
${instance}.${field.setter}(${field.value});
#end
]]>
</template-body>
</template>
</templates>
Edição : Eu alterei o xml, estou recebendo este erro agora:
O conteúdo do tipo de elemento "modelo" deve corresponder "(descrição, variação?, Campo de variação?, Permitir variação múltipla?, Padrão de classe?, Getter-setter?, Extensões de arquivo permitidas?, Número necessário- classes?, modelo-corpo) ".
xml
eclipse
validation
dtd
fastcodejava
fonte
fonte
Respostas:
No meu caso, resolvi esse aviso irritante simplesmente adicionando o
<!DOCTYPE xml>
depois da<?xml ... >
tag.fonte
Isso funcionou para mim no Eclipse 3.7.1: Vá para a janela Preferências e, em seguida, XML -> Arquivos XML -> Validação. Em seguida, na seção Validando arquivos do painel de preferências à direita, escolha Ignorar na caixa suspensa da preferência "Nenhuma gramática especificada". Pode ser necessário fechar o arquivo e reabri-lo para fazer o aviso desaparecer.
(Sei que esta pergunta é antiga, mas foi a primeira que encontrei ao pesquisar no aviso, por isso estou postando a resposta aqui para outros pesquisadores.)
fonte
Responda:
Comentários sobre cada parte do seu DTD abaixo. Consulte as especificações oficiais para obter mais informações.
Explicação simples:
Um DTD extremamente básico será semelhante à segunda linha aqui:
Explicação detalhada:
As DTDs servem para estabelecer formatos de dados acordados e validar o recebimento de tais dados. Eles definem a estrutura de um documento XML, incluindo:
Por exemplo
Significado das linhas acima ...
Linha 1) Elemento raiz definido como "nameOfYourRootElement"
Linha 2) Início das definições de elemento
Linha 3) Filhos do elemento raiz definidos como "nameOfYourRootElement1" e "nameOfYourRootElement2"
Linha 4) Elemento filho, definido como dados tipo
#PCDATA
Linha 5) Elemento filho, que é definido como tipo de dados
#PCDATA
Linha 6) Expanda instâncias de
até 
quando o documento é analisado pelo analisador XMLLinha 7) Expanda instâncias de
&author;
atéYour Author Name
quando o documento é analisado por analisador XMLLinha 8) Fim das definições
fonte
A solução real:
adicionar
<!DOCTYPE something>
ao início de cada XML problemático,após a tag xml
<?xml version="1.0" encoding="utf-8"?>
você pode escrever qualquer coisa para doctype, mas basicamente deve ser manifesto, atividade etc. do que eu entendo
fonte
Você tentou adicionar um esquema ao catálogo xml?
no eclipse para evitar "nenhuma restrição gramatical (esquema dtd ou xml) detectada para o documento". eu uso para adicionar um arquivo de esquema xsd ao catálogo xml em
"Janela \ preferências \ xml \ catálogo de xml \ Entradas especificadas pelo usuário".
Clique no botão "Adicionar" à direita.
Exemplo:
A partir deste xml, eu criei e salvei um xsd em: /home/my_user/xsd/my_xsd.xsd
Como local: /home/my_user/xsd/my_xsd.xsd
Como tipo de chave: nome do espaço para nome
Como chave: http://mycompany.com/hr/schemas
Feche e reabra o arquivo xml e faça algumas alterações para violar o esquema. Você deve ser notificado
fonte
Adicionar tag DOCTYPE ...
Nesse caso:
Adicionar depois:
Assim:
fonte
Uma nova maneira limpa pode ser escrever seu xml da seguinte maneira:
O acima funciona no Eclipse Juno +
fonte
Para mim, foi um problema com a codificação de caracteres e o modo de arquivo unix executando o eclipse no Windows:
Acabei de marcar o código completo, cortá- lo e colá-lo de volta (resumindo: CtrlA-CtrlX-CtrlV ) e tudo estava bem - não havia mais avisos de "Sem restrições gramaticais ..."
fonte
Tente entender a sugestão dada nas mensagens de aviso; isso ajuda em algum momento.
Eu também tive os mesmos problemas, depois de fazer algumas pesquisas, encontrei a solução e corrigi-a adicionando a linha abaixo no início
o que levou a alguma outra questão no meu caso. O que resolvi lendo as sugestões, que novamente se transformaram em outro problema, que foi resolvido no entendimento da causa original, de que o primeiro link estava quebrado (não encontrado). Abaixo estão as imagens passo a passo que explicam o que foi feito para resolver o problema completamente.
fonte
Eu realmente não sei dizer por que você recebe o aviso "Sem restrições gramaticais ...", mas posso provocá-lo no Eclipse removendo completamente a declaração DOCTYPE. Quando coloco a declaração de volta e valido novamente, recebo esta mensagem de erro:
E isso está correto, acredito (o elemento "número de classes necessárias" não é permitido).
fonte
Eu sei que isso é antigo, mas estou passando pelo mesmo problema e encontrei a solução na documentação da primavera, a seguinte configuração xml foi resolvida para mim.
antes de colocar a linha acima, conforme sugerido neste tópico do fórum, tenho a mesma mensagem de aviso e colocando isso ...
e me dá a seguinte mensagem de aviso ...
então tente usar as linhas sugeridas da minha configuração xml.
fonte
Isso pode ocorrer devido ao desligamento da validação no eclipse.
fonte
Resolvido esse problema no Eclipse 3.5.2. Dois layouts completamente idênticos dos quais um recebeu o aviso. Fechou todas as guias e, ao reabrir, o aviso desapareceu.
fonte
erro deve ter desaparecido.
fonte
Usei um caminho relativo no xsi: noNamespaceSchemaLocation para fornecer o arquivo xsd local (porque não consegui usar um espaço para nome no xml da instância).
A validação funciona e o aviso é corrigido (não ignorado).
https://www.w3schools.com/xml/schema_example.asp
fonte
Eu também tive o mesmo problema no eclipse usando o arquivo web.xml,
ele me mostrou isso "nenhuma restrição gramatical referenciada no documento"
mas isso pode ser resolvido adicionando tag
após a tag xml, ou seja
<?xml version = "1.0" encoding = "UTF-8"?>
fonte
Aqui está a solução para esse problema:
Etapa 1: Clique com o botão direito do mouse no projeto e vá para Propriedades
Etapa 2: vá para 'bibliotecas' e remova a 'biblioteca do sistema JRE' do projeto
Etapa 3: clique em 'Adicionar biblioteca' -> 'Biblioteca do sistema JRE' -> selecione 'JRE padrão da área de trabalho'
Etapa 3: vá para 'Solicitar e exportar' e marque a 'biblioteca do sistema JRE' recém-adicionada
Etapa 4: atualizar e limpar o projeto
Eureka! Está funcionando :)
fonte
O que eu achei ser a solução foi algo muito, muito simples, que acho que você deveria tentar antes de mexer nas preferências. No meu caso, eu tive esse problema em um arquivo de strings que tinha como tag base "recursos" ... tudo o que fiz foi excluir a tag da parte superior e inferior, limpar o projeto, salvar o arquivo e reinserir a tag. O problema desapareceu e nunca me deu nenhum aviso. Pode parecer simples demais para ser verdade, mas, às vezes, são as coisas mais simples que resolvem os problemas. Felicidades
fonte
Eu apaguei o aviso na exibição de problemas. Não voltou até agora.
fonte