Tengo este dtd: http://fast-code.sourceforge.net/template.dtd Pero cuando lo incluyo en un xml, aparece la advertencia: No se detectaron restricciones gramaticales (DTD o esquema XML) para el documento. El xml es:
<?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>
EDITAR : cambié el xml, recibo este error ahora:
El contenido del tipo de elemento "plantilla" debe coincidir "(descripción, ¿variación?, ¿Campo de variación?, ¿Permitir-variación-múltiple?, ¿Patrón-de-clase?, Getter-setter?, ¿Extensiones-de-archivo-permitidas?, Número-requerido- clases?, plantilla-cuerpo) ".
xml
eclipse
validation
dtd
fastcodejava
fuente
fuente
Respuestas:
En mi caso, he resuelto esta molesta advertencia simplemente agregando el
<!DOCTYPE xml>
después de la<?xml ... >
etiqueta.<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml>
fuente
Esto funcionó para mí en Eclipse 3.7.1: Vaya a la ventana Preferencias, luego XML -> Archivos XML -> Validación. Luego, en la sección Validación de archivos del panel de preferencias a la derecha, elija Ignorar en el cuadro desplegable para la preferencia "Sin gramática especificada". Es posible que deba cerrar el archivo y luego volver a abrirlo para que desaparezca la advertencia.
(Sé que esta pregunta es antigua, pero fue la primera que encontré al buscar en la advertencia, así que publico la respuesta aquí para otros buscadores).
fuente
Responder:
Comentarios sobre cada parte de su DTD a continuación. Consulte las especificaciones oficiales para obtener más información.
<! DOCTYPE ----------------------------------------- correct templates --------------------------------------- correct Name matches root element. PUBLIC ------------------------------------------ correct Accessing external subset via URL. "//UNKNOWN/" ------------------------------------ invalid? Seems useless, wrong, out-of-place. Safely replaceable by DTD URL in next line. "http://fast-code.sourceforge.net/template.dtd" - invalid URL is currently broken. >
Explicación simple:
Un DTD extremadamente básico se verá como la segunda línea aquí:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE nameOfYourRootElement> <nameOfYourRootElement> </nameOfYourRootElement>
Explicación detallada:
Los DTD sirven para establecer formatos de datos acordados y validar la recepción de dichos datos. Definen la estructura de un documento XML, que incluye:
P.ej
<!DOCTYPE nameOfYourRootElement [ <!ELEMENT nameOfYourRootElement (nameOfChildElement1,nameOfChildElement2)> <!ELEMENT nameOfChildElement1 (#PCDATA)> <!ELEMENT nameOfChildElement2 (#PCDATA)> <!ENTITY nbsp " "> <!ENTITY author "Your Author Name"> ]>
Significado de las líneas anteriores ...
Línea 1) Elemento raíz definido como "nameOfYourRootElement"
Línea 2) Inicio de las definiciones del elemento
Línea 3) Elementos secundarios del elemento raíz definidos como "nameOfYourRootElement1" y "nameOfYourRootElement2"
Línea 4) Elemento secundario , que se define como datos tipo
#PCDATA
Línea 5) Elemento hijo, que se define como tipo de datos
#PCDATA
Línea 6) Expande las instancias de
hasta 
cuando el analizador XML analiza el documentoLínea 7) Expande las instancias de
&author;
hastaYour Author Name
cuando el documento es analizado por el analizador XMLLínea 8) Fin de las definiciones
fuente
La verdadera solución:
añadir
<!DOCTYPE something>
al principio de cada XML problemático,después de la etiqueta xml
<?xml version="1.0" encoding="utf-8"?>
puede escribir cualquier cosa para el tipo de documento, pero básicamente se supone que es manifiesto, actividad, etc. por lo que entiendo
fuente
¿Ha intentado agregar un esquema al catálogo xml?
en eclipse para evitar las "restricciones gramaticales (dtd o esquema xml) detectadas para el documento". utilizo para agregar un archivo de esquema xsd al catálogo xml en
"Ventana \ preferencias \ xml \ xml catálogo \ Entradas especificadas por el usuario".
Haga clic en el botón "Agregar" a la derecha.
Ejemplo:
<?xml version="1.0" encoding="UTF-8"?> <HolidayRequest xmlns="http://mycompany.com/hr/schemas"> <Holiday> <StartDate>2006-07-03</StartDate> <EndDate>2006-07-07</EndDate> </Holiday> <Employee> <Number>42</Number> <FirstName>Arjen</FirstName> <LastName>Poutsma</LastName> </Employee> </HolidayRequest>
De este xml he generado y guardado un xsd en: /home/my_user/xsd/my_xsd.xsd
Como ubicación: /home/my_user/xsd/my_xsd.xsd
Como tipo de clave: nombre del espacio de nombres
Como clave: http://mycompany.com/hr/schemas
Cierre y vuelva a abrir el archivo xml y realice algunos cambios para violar el esquema, debe ser notificado
fuente
Agregar etiqueta DOCTYPE ...
En este caso:
<!DOCTYPE xml>
Agregar después:
<?xml version="1.0" encoding="UTF-8"?>
Entonces:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml>
fuente
Una nueva forma limpia podría ser escribir su xml así:
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE rootElement> <rootElement> .... </rootElement>
Lo anterior funciona en Eclipse Juno +
fuente
Para mí, fue un problema con la codificación de caracteres y el modo de archivo Unix ejecutando eclipse en Windows:
Simplemente marcó el código completo, lo cortó y pegó nuevamente (en resumen: CtrlA-CtrlX-CtrlV ) y todo estuvo bien, no más advertencias de "Sin restricciones gramaticales ..."
fuente
Intente comprender la sugerencia que se da en los mensajes de advertencia, en algún momento ayuda.
También tuve los mismos problemas, después de investigar un poco, encontré la solución y la solucioné agregando la siguiente línea al principio
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml>
lo que llevó a algún otro problema en mi caso. Lo cual resolví leyendo las sugerencias, que nuevamente se convirtió en el otro problema, que se ha resuelto entendiendo la causa original, que el primer enlace se rompió (no se encontró). A continuación se muestran las imágenes paso a paso que explican lo que se ha hecho para resolver el problema por completo.
fuente
Realmente no puedo decir por qué aparece la advertencia "Sin restricciones gramaticales ...", pero puedo provocarla en Eclipse eliminando por completo la declaración DOCTYPE. Cuando devuelvo la declaración y la vuelvo a validar, aparece este mensaje de error:
Y eso es correcto, creo (el elemento "number-required-classes" no está permitido).
fuente
Sé que esto es antiguo, pero estoy pasando por el mismo problema y encontré la solución en la documentación de primavera, la siguiente configuración xml me ha resuelto el problema.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd http://www.springframework.org/schema/tx <!-- THIS IS THE LINE THAT SOLVE MY PROBLEM --> http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
antes de poner la línea de arriba como se sugiere en este tema del foro, tengo el mismo mensaje de advertencia, y colocando esto ...
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE xml>
y me da el siguiente mensaje de advertencia ...
así que intente usar las líneas sugeridas de mi configuración xml.
fuente
Esto puede deberse a desactivar la validación en eclipse.
fuente
Resolvió este problema en Eclipse 3.5.2. Dos diseños completamente idénticos de los cuales uno tenía la advertencia. Cerró todas las pestañas y al reabrir la advertencia había desaparecido.
fuente
el error debe desaparecer.
fuente
Usé una ruta relativa en xsi: noNamespaceSchemaLocation para proporcionar el archivo xsd local (porque no pude usar un espacio de nombres en la instancia xml).
<?xml version="1.0" encoding="UTF-8"?> <root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../project/schema.xsd"> </root>
La validación funciona y la advertencia es fija (no ignorada).
https://www.w3schools.com/xml/schema_example.asp
fuente
Yo también tuve el mismo problema en eclipse usando el archivo web.xml
, me mostró esto "sin restricciones gramaticales referenciadas en el documento"
pero se puede resolver agregando una etiqueta
después de la etiqueta xml, es decir
<?xml version = "1.0" encoding = "UTF-8"?>
fuente
Aquí está la solución de trabajo para este problema:
Paso 1: haga clic derecho en el proyecto y vaya a propiedades
Paso 2: Vaya a 'bibliotecas' y elimine la 'biblioteca del sistema JRE' del proyecto
Paso 3: Haga clic en 'Agregar biblioteca' -> 'Biblioteca del sistema JRE' -> seleccione 'Espacio de trabajo predeterminado JRE'
Paso 3: Vaya a 'Solicitar y exportar' y marque la 'Biblioteca del sistema JRE' recién agregada
Paso 4: Actualizar y limpiar el proyecto
¡Eureka! Esta funcionando :)
fuente
La solución que encontré fue algo muy muy simple que creo que deberías probar antes de jugar con las preferencias. En mi caso tuve este problema en un archivo de cadenas que tenía como etiqueta base "recursos" ... todo lo que hice fue borrar la etiqueta de arriba y abajo, limpiar el proyecto, guardar el archivo y volver a insertar la etiqueta. El problema ha desaparecido desde entonces y nunca me dio ninguna advertencia. Puede parecer demasiado simple para ser verdad, pero bueno, a veces son las cosas más simples las que resuelven los problemas. Salud
fuente
Eliminé la advertencia en la vista de problemas. No volvió hasta ahora.
fuente