2010-10-20 15 views
5

Cuando estoy editando un documento XML que tiene un XmlSchema, ¿cómo puedo determinar mediante programación los elementos que pueden insertarse a continuación? Estoy usando C# y ya sé en qué elemento estoy. ¿Hay algún método MSXML al que pueda llamar o algo más? Gracias.¿Cómo puedo determinar mediante programación los elementos XML que se pueden insertar a continuación?

+1

¿Está tratando de realizar la validación de esquema o la generación de XML? De su pregunta, no está claro lo que hace su código. –

+0

Estoy tratando de proporcionar intellisense al autor de documentos Xml. – Tarzan

+0

Creo que el esquema XML DOM proporciona esta información, pero no recuerdo la API. Sé que puedes obtener una lista de atributos y deberías poder obtener una lista de posibles elementos secundarios. La determinación de todas las restricciones puede ser inexacta. –

Respuesta

1

Suena como que está después el modelo de objetos .Net de esquema (SOM)

Schema Object Model

Aquí es un artículo sobre cómo trabajar con el SOM.

Example 1

1

Tarzán,

Como yo lo entiendo, que están tratando de determinar el XML legal que se puede añadir a un lugar específico en el documento, basado en el esquema que se utiliza. Si eso es correcto, es un problema muy difícil de resolver . Si tiene un elemento "cualquiera" en su XSD, su complejidad aumenta porque literalmente puede ser cualquier elemento. Además, los esquemas XSD se pueden subclasificar (es decir, una estructura de definición de elementos basada en otra estructura), luego eso introduce una mayor complejidad. Solo hay un par de productos (Oxygen, Visual Studio) que han intentado esto con éxito (que yo sepa).

Si su esquema es bastante simple, y no incluye ninguno de estos factores decisivos, es posible que pueda utilizar el Modelo de objetos de esquema para buscar los elementos legales en su ubicación actual, pero solo si sabe qué parte de el XSD se aplica a su elemento actual.

¿Tiene esto sentido?

Erick

Cuestiones relacionadas