Red de conocimiento informático - Problemas con los teléfonos móviles - La importancia de XML

La importancia de XML

La importancia de XML

¿Por qué es importante XML?

¿Por qué es importante XML? Un principio muy importante en la Web es: el contenido es lo más importante en un sitio web. Pero, lamentablemente, el contenido siempre está ligado a cómo se muestra. Cuando navega por la web, ¿cuántas veces ha visto una pequeña etiqueta que dice "Este sitio web se ve mejor con una resolución de 800*600"? ¡Incontable! XML ayudará a resolver este problema. Debido a que en XML, los creadores de sitios web ya no especifican dónde mostrar algo en una página web, lo que deben hacer es definir la estructura de un documento. Por ejemplo, lo que hay que definir es el título del documento, el autor, una serie de enlaces relacionados, etc. ¿Cualquier dispositivo equipado con un navegador XML? ¿Una computadora de mano, un decodificador de TV, una estación de trabajo de alto rendimiento, etc. puede mostrar el contenido del documento XML de acuerdo con las características de visualización de cada dispositivo? Quizás la característica más fuerte de XML es su extensibilidad inherente. Cualquier empresa u organización puede ampliar XML para implementar nuevas aplicaciones. Hoy en día, casi a diario se proponen soluciones de aplicaciones XML en Internet. Se han comenzado a utilizar algunos lenguajes basados ​​​​en XML www.diannao114.cn, como el formato de definición de canal de Microsoft. Se están desarrollando otros, incluido el formato de definición de recursos (formato de definición de recursos) y la descripción de software abierto (descripción de software abierto), etc. También es probable que XML se convierta en un estándar para los mecanismos de intercambio de datos y documentos. Por ejemplo, XML se puede utilizar para intercambiar información entre diferentes bases de datos en Internet. Hasta ahora, parece demasiado pronto para describir con precisión la utilidad de XML. Pero las posibilidades que ofrece son infinitas y quizás por eso XML atrajo tanta atención en sus inicios.

¿Qué es XML? Enumere las tecnologías y aplicaciones XML que conoce

¿Qué es XML? Enumere las tecnologías XML y sus aplicaciones que conoce

Respuesta: XML es el lenguaje de marcado extensible. Las marcas eXtensibleMarkupLanguage se refieren a símbolos de información que las computadoras pueden entender. A través de dichas marcas, las computadoras pueden procesar artículos que contienen diversa información. Cómo definir estas etiquetas www.diannao114.cn, puede elegir un lenguaje de etiquetas aceptado internacionalmente, como HTML, o puede usar un lenguaje de etiquetas como XML que las personas relevantes decidan libremente. Esta es la escalabilidad del lenguaje. XML está simplificado y modificado a partir de SGML. Utiliza principalmente XML, XSL y XPath, etc.

Android crea y analiza XML (1): descripción general Android crea y analiza XML (1): descripción general

Android es la plataforma de teléfonos inteligentes más utilizada y XML se utiliza para el intercambio de datos. Medios estándar, Android puede utilizar API de generador, analizador y convertidor XML estándar para analizar y convertir XML.

XML está relacionado con un montón de conceptos como DOM, SAX, JDOM, DOM4J, Xerces, JAXP, etc., pero mucha gente siempre confunde la relación entre ellos, lo cual es muy importante para nuestra comprensión de La creación y creación de archivos XML es mala. Para elegir una solución de análisis XML adecuada para su uso en la plataforma Android, primero debemos aclarar estos conceptos.

Los conceptos básicos de XML, DOM (Document Object Model, modelo de objetos de documento) y SAX (Simple API for XML, interfaz de aplicación XML simple), son JAXP (Java API for XML Processing, aplicación de procesamiento Java XML interfaz) Se definen dos métodos diferentes de análisis y procesamiento de documentos XML.

El método DOM utiliza un modelo de objetos estándar para representar documentos XML; el método SAX utiliza un modelo de eventos para manejar programas para procesar XML.

JAXP ha completado el empaquetado de SAX y DOM. Proporciona aplicaciones con DocumentBuilderFactory y DocumentBuilder para DOM, así como clases de fábrica abstractas SAXParserFactory y SAXParser para SAX. En Jave SE, JAXP corresponde al paquete javax.xml.parsers, DOM corresponde a org.w3c.dom y SAX corresponde a org.xml.sax.

Xerces primero hereda e implementa clases abstractas como SAXParser, SAXParserFactory, DocumentBuilder y DocumentBuilderFactory en javax) La implementación de estos métodos de análisis XML y el analizador correspondiente. JDOM y DOM4J son API alternativas desarrolladas porque algunas personas sienten que la API estándar DOM del W3C es demasiado difícil de usar. Al igual que JAXP, son encapsulaciones de DOM y SAX, pero JDOM y DOM4J han hecho más, lo que es equivalente a La interfaz JAXP +. La parte de implementación de Xerces DOM se menciona anteriormente. JDOM no desarrolló su propio analizador, por lo que aún necesita usar la parte del analizador de Xerces. DOM4J viene con un analizador llamado Alfred2. Por supuesto, también puede usar el analizador de Xerces. Parece que JAXP tiene mejor portabilidad, es decir, podemos cambiar diferentes implementaciones de DOM y SAX y DOM Parser modificando el archivo de configuración. Aunque JDOM y DOM4J también pueden cambiar de analizador, la implementación de DOM no se puede cambiar. (Referencia: charla sobre la API XML de Java e introducción completa a JAXP)

Creación y análisis de XML

Hay cuatro formas principales de crear XML: Dom, Sax, Pull, Dom4j

Hay cuatro métodos principales de análisis XML: Dom, Sax, Pull y Dom4j

Entre ellos, los archivos de formato XML estándar creados con Dom, Sax, Pull y Dom4j pueden generarse mediante cualquier Para el análisis se utilizan los métodos de análisis Dom, Sax, Pull y Dom4j.

Análisis de XML en Android

El analizador DOM completa el trabajo de análisis analizando el documento XML en un modelo de árbol y colocándolo en la memoria, y luego opera en el documento. en este modelo de árbol. Este árbol de documentos en memoria tendrá varias veces el tamaño real del documento. La ventaja de esto es una estructura clara y un funcionamiento conveniente, pero el problema es que consume muchísimo recursos del sistema. El analizador SAX simplemente supera las deficiencias de DOM y el análisis puede comenzar inmediatamente en lugar de esperar a que se procesen todos los datos. Además, dado que la aplicación solo verifica los datos a medida que se leen, no es necesario almacenarlos en la memoria, lo cual es una gran ventaja para documentos grandes. De hecho, la aplicación ni siquiera tiene que analizar el documento completo; puede dejar de analizarlo cuando se cumple una determinada condición.

Comparación entre DOM y SAX

La siguiente tabla enumera la comparación entre SAX y DOM en algunos aspectos:

SAXDOM lee documentos secuencialmente y genera los eventos correspondientes. Puede manejar documentos XML de cualquier tamaño y crear un árbol de documentos en la memoria. No es adecuado para procesar documentos XML grandes. El documento solo se puede analizar una vez en orden y no se admite el acceso aleatorio al documento. Puedes acceder a cualquier parte del árbol del documento tantas veces como quieras sin límite. El contenido del documento XML solo se puede leer, pero no modificar. El árbol del documento se puede modificar a voluntad, modificando así el documento XML. El desarrollo es más complicado y el controlador de eventos debe implementarse usted mismo. Fácil de entender y fácil de desarrollar. Más flexible para los desarrolladores, que pueden utilizar SAX para crear sus propios modelos de objetos XML. El árbol de documentos se ha creado basándose en el DOM. A través del análisis de SAX y DOM, cada uno tiene sus propios campos de aplicación diferentes:

SAX es adecuado para manejar los siguientes problemas: procesamiento de documentos grandes.

Solo se requiere una parte del documento o solo se requiere información específica del documento. Cuando quieras crear tu propio modelo de objetos. DOM es adecuado para manejar los siguientes problemas:

La necesidad de modificar el documento requiere acceso aleatorio al documento, como un analizador XSLT.

Escenarios de aplicación de DOM y SAX 1. Modificación de datos: si planea realizar cambios en los datos y generarlos como XML, en la mayoría de los casos, DOM es la opción adecuada. Eso no quiere decir que no puedas cambiar los datos usando SAX, pero el proceso es mucho más complicado porque tienes que hacer cambios en una copia de los datos en lugar de en los datos en sí. 2. Capacidad de datos: para archivos grandes, SAX es una mejor opción. 3. Uso de datos: si solo se utilizará una pequeña parte de los datos, puede ser mejor usar SAX para extraer esa parte de los datos en la aplicación. Por otro lado, si sabe que más adelante consultará grandes cantidades de información que ya ha procesado, es posible que SAX no sea la opción correcta. 4. Requisitos de velocidad: la implementación de SAX suele ser más rápida que la implementación de DOM. Según el análisis anterior, en dispositivos portátiles basados ​​​​en sistemas Android con memoria y recursos de CPU limitados, siempre que no necesitemos modificar datos XML o acceder aleatoriamente a datos XML, SAX puede requerir más trabajo de codificación, pero para memorias más pequeñas y El consumo de CPU todavía vale la pena. Además, el SDK de Android ya contiene el paquete javax.xml.parsers correspondiente a JAXP, org.xml.sax correspondiente a SAX y el paquete org.w3c.dom correspondiente a DOM. Además, Android también proporciona paquetes como. android.sax por conveniencia El desarrollo de SAX Handle basado en métodos estándar como JAXP y SAX no solo no es muy complejo, sino que también facilita la búsqueda de soluciones en el grupo de discusión incluso si surgen problemas. (Referencia: Uso de SAX para procesar documentos XML y analizador xerces DOM SAX JAXP DOM4J JDOM) Implementación del análisis XML en Android

Según el análisis anterior, soy más optimista acerca de la solución que utiliza JAXP+SAX. Primero necesitamos otra instancia de SAXParserFactory, luego obtenemos una instancia de SAXParser de la fábrica y luego obtenemos un XMLReader y luego creamos una nueva clase Handler que hereda de DefaultHandler de SAX Helpler e implementa startDocument(), startElement(), endElement() y endDocument; () y otros métodos, y utilice este controlador como controlador de contenido de XMLReader. Finalmente, llame al método de análisis de XMLReader con el documento XML analizado como parámetro; Referencia de código específico: uso de XML en Android y creación y análisis de XML en la plataforma Android 3.0

1. Implementación de DOM y SAX en el sistema Android El SDK de Android contiene el paquete javax.xml.parsers correspondiente a JAXP. , SAX El correspondiente org.xml.sax, DOM correspondiente al paquete org.w3c.dom, por lo que ya tenemos el JAXP necesario para el análisis XML: la encapsulación (clase abstracta) de SAX y DOM y las clases de interfaz SAX y DOM, pero ¿Dónde? Cuáles son las implementaciones de las clases abstractas JAXP y las implementaciones de las clases de interfaz DOM y SAX? ¿Utiliza Xerces como Java SE 5.0? ¡No! Al observar el código fuente de Android 1.5, vi que esta parte del código proviene de Apache Harmony, una implementación de Java SE de código abierto, ubicada en ./dalvik/libcore/xml/src/main/java/org/apache. Directorio /harmony/xml.

Contiene una implementación DOM completa (directorio dom), una implementación de la clase abstracta en javax.xml.parser (directorio del analizador) y una implementación de la clase de interfaz SAX (además de la implementación de la interfaz XMLPullParser). 2. Los analizadores XmlPull y KXML2XmlPull proporcionan API de análisis XML utilizadas por aplicaciones en entornos con recursos limitados (como J2ME, que proporciona una interfaz muy simple, que incluye una interfaz, una excepción y una fábrica para construir un analizador). Adopta un modelo de fábrica similar a JAXP para separar el diseño y la implementación de la interfaz. KXML2 es una implementación optimizada para el entorno J2ME. En el SDK de Android, se incluyen XmlPull (paquete org.xmlpull.v1) y uno de sus complementos, el controlador SAX2, que nos permite manipular XmlPull Parser a través de la API SAX2. Además, a través del código fuente, podemos ver que la implementación de XmlPull en el SDK de Android es KXML2, ubicado en el directorio ./dalvik/libcore/xml/src/main/java/org/kxml2. También hay una clase ExpatPullParser en el directorio de Apache Harmony que implementa la interfaz XMLPullParser, pero no hay una implementación de la interfaz XmlSerializer, por lo que solo se puede decir que Harmony en Android también implementa parcialmente la API XmlPull. XmlPull+KXML2 es el siguiente paso que quiero implementar. También tendré que aprender a comparar "imparcialmente" el rendimiento de los dos. 3. StAX Aunque Android aún no proporciona el soporte correspondiente, Streaming API for XML (StAX), como el último estándar para procesar XML en el lenguaje Java, tiene un rendimiento excelente en términos de rendimiento y usabilidad. No sólo proporciona un analizador XML rápido, fácil de usar y con poca memoria, sino que también proporciona una interfaz de filtro que permite a los programadores ocultar detalles de documentos no deseados de la lógica empresarial de la aplicación. Los amigos interesados ​​pueden consultar el artículo siguiente.

Análisis de XML con StAX, Parte 1: Introducción a la API de Streaming para XML (StAX)

Análisis de XML con StAX, Parte 2: Análisis de extracción y eventos

Uso de StAX para analizar XML, Parte 3: Uso de eventos personalizados y escritura XML

Recomendaciones de referencia:

Análisis de datos XML en Android

Resumen del análisis XML de Android (SAX, Pull, Dom tres formas)

Las tres formas de Android de analizar archivos XML DOM, SAX, PULL

Las tres formas de Android de analizar archivos xml (recomendado, *** tres capítulos )

Usar XML en Android

Usar XML y JSON en Android

Crear y analizar XML en la plataforma Android 3.0

Análisis XML de Android y aprendizaje: creación de XML (*** seis artículos, recomendado)

Lista completa de atributos XML comunes

Primero, analice aproximadamente de acuerdo con la estructura de directorios del programa:

res/layout/ Este directorio almacena los archivos xml utilizados para el diseño. Generalmente, el valor predeterminado es main.xml

res/values/ Este directorio almacena un montón de archivos xml constantes

.

res/drawable/ almacena algunas imágenes, etc., por supuesto, los íconos también están aquí

A continuación se presenta principalmente el archivo xml bajo diseño y también se resume el método de diseño:

·El comienzo del archivo

Esto explica la versión xml y la codificación de caracteres

·La parte clave es la siguiente:

android:layout_width="wrap_content"

android:layout_height="wrap_content">

El "LinearLayout" al principio es el método de diseño. Puede haber muchos tipos. El más utilizado es Linear. Otros métodos de diseño se resumirán más adelante.

Entonces android:layout_width(height)="wrap_content" es establecer el ancho y el alto de esta parte del diseño, que también puede ser un valor absoluto, por supuesto, cuando se establece en un valor absoluto. , la unidad debe estar marcada.

·Puedes agregar controles entre los dos. Por ejemplo, si deseas agregar un control de Botón llamado btn y el texto que se muestra en el Botón es "¡Prueba!", puedes escribirlo así: