Sobre este tema hay muchísimo ya escrito, pero lo que os cuento es un problema extraño que me ha pasado al crear un tipo de contenido desde XML y el motivo del mismo.
Por si alguien ha llegado hasta aquí y está empezando, os pongo unas cuantas referencias con todo lo necesario para crear tipos de contenido de forma declarativa:
- Creating Content Types: http://msdn.microsoft.com/en-us/library/ms460224.aspx
- How to: Add a Content Type to a Site: http://msdn.microsoft.com/en-us/library/aa543878.aspx
- Content Type Element: http://msdn.microsoft.com/en-us/library/aa544268.aspx
- All FIELD XML Elements Reference: http://msdn.microsoft.com/en-us/library/ms194953.aspx
- Field Element: http://msdn.microsoft.com/en-us/library/ms437580.aspx
Partiendo de esos enlaces, he creado el siguiente Elements.xml, que crea un Tipo de contenido y 4 columnas de sitio de varios tipos comunes.
1 |
<span style="color: #0000ff"><?</span><span style="color: #800000">xml</span> <span style="color: #ff0000">version</span><span style="color: #0000ff">="1.0"</span> <span style="color: #ff0000">encoding</span><span style="color: #0000ff">="utf-8"</span>?<span style="color: #0000ff">></span><br /><span style="color: #0000ff"><</span><span style="color: #800000">Elements</span> <span style="color: #ff0000">xmlns</span><span style="color: #0000ff">="http://schemas.microsoft.com/sharepoint/"</span><span style="color: #0000ff">></span><br /><br /> <span style="color: #008000"><!--FIELDS definition--></span><br /> <span style="color: #008000"><!--Field element: </span><br /><span style="color: #008000"> http://msdn.microsoft.com/en-us/library/ms437580.aspx</span><br /><span style="color: #008000"> http://msdn.microsoft.com/en-us/library/ms194953.aspx</span><br /><span style="color: #008000"> --></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">Field</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{0DA5AF1E-D2EF-4930-9CA6-5212891E3E7C}"</span><br /> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Lugar"</span><br /> <span style="color: #ff0000">Type</span><span style="color: #0000ff">="Text"</span><br /> <span style="color: #ff0000">DisplayName</span><span style="color: #0000ff">="Lugar"</span><br /> <span style="color: #ff0000">Group</span><span style="color: #0000ff">="ENCAMINA_FORMACION"</span><br /> <span style="color: #ff0000">Hidden</span><span style="color: #0000ff">="FALSE"</span><br /> <span style="color: #ff0000">Viewable</span><span style="color: #0000ff">="TRUE"</span> <span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">Field</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{5E58180A-C0C3-4D00-81EB-79E3273674AA}"</span><br /> <span style="color: #ff0000">Type</span><span style="color: #0000ff">="DateTime"</span><br /> <span style="color: #ff0000">Format</span><span style="color: #0000ff">="DateTime"</span><br /> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Cuando"</span><br /> <span style="color: #ff0000">DisplayName</span><span style="color: #0000ff">="Fecha y hora"</span><br /> <span style="color: #ff0000">Group</span><span style="color: #0000ff">="ENCAMINA_FORMACION"</span><br /> <span style="color: #ff0000">Hidden</span><span style="color: #0000ff">="FALSE"</span><br /> <span style="color: #ff0000">Viewable</span><span style="color: #0000ff">="TRUE"</span><span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">Field</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{DC1F756B-14AB-4DBE-9BD6-15F2770B8E28}"</span><br /> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Precio"</span><br /> <span style="color: #ff0000">Type</span><span style="color: #0000ff">="Number"</span><br /> <span style="color: #ff0000">Max</span><span style="color: #0000ff">="100"</span><br /> <span style="color: #ff0000">Min</span><span style="color: #0000ff">="0"</span><br /> <span style="color: #ff0000">DisplayName</span><span style="color: #0000ff">="Precio"</span><br /> <span style="color: #ff0000">Group</span><span style="color: #0000ff">="ENCAMINA_FORMACION"</span><br /> <span style="color: #ff0000">Hidden</span><span style="color: #0000ff">="FALSE"</span><br /> <span style="color: #ff0000">Viewable</span><span style="color: #0000ff">="TRUE"</span> <span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">Field</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{7715F3DC-46E3-4376-90A8-AB497A63CB02}"</span><br /> <span style="color: #ff0000">Type</span><span style="color: #0000ff">="Choice"</span><br /> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Perfil"</span><br /> <span style="color: #ff0000">DisplayName</span><span style="color: #0000ff">="Perfil"</span><br /> <span style="color: #ff0000">Group</span><span style="color: #0000ff">="ENCAMINA_FORMACION"</span><br /> <span style="color: #ff0000">Hidden</span><span style="color: #0000ff">="FALSE"</span><br /> <span style="color: #ff0000">Viewable</span><span style="color: #0000ff">="TRUE"</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICES</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span>Juventud<span style="color: #0000ff"></</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span>Emprendedores<span style="color: #0000ff"></</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span>Ecologista<span style="color: #0000ff"></</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span>Tercera edad<span style="color: #0000ff"></</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span>Cultura<span style="color: #0000ff"></</span><span style="color: #800000">CHOICE</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"></</span><span style="color: #800000">CHOICES</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">Default</span><span style="color: #0000ff">></span>Juventud<span style="color: #0000ff"></</span><span style="color: #800000">Default</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"></</span><span style="color: #800000">Field</span><span style="color: #0000ff">></span><br /><br /> <span style="color: #008000"><!-- Parent ContentType: Announcement (0x0104) --></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">ContentType</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="0x0104005c09430cb93e4f51aac68d085cc38994"</span><br /> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="ItemAgenda"</span><br /> <span style="color: #ff0000">Group</span><span style="color: #0000ff">="ENCAMINA_FORMACION"</span><br /> <span style="color: #ff0000">Description</span><span style="color: #0000ff">="Tipo de contenido para la Agenda"</span><br /> <span style="color: #ff0000">Inherits</span><span style="color: #0000ff">="TRUE"</span><br /> <span style="color: #ff0000">Version</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">FieldRefs</span><span style="color: #0000ff">></span><br /> <span style="color: #008000"><!--FieldRefs definition: http://msdn.microsoft.com/en-us/library/aa543225.aspx--></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">FieldRef</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{0DA5AF1E-D2EF-4930-9CA6-5212891E3E7C}"</span> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Lugar"</span> <span style="color: #ff0000">Hidden</span><span style="color: #0000ff">="FALSE"</span><span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">FieldRef</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{5E58180A-C0C3-4D00-81EB-79E3273674AA}"</span> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Cuando"</span><span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">FieldRef</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{DC1F756B-14AB-4DBE-9BD6-15F2770B8E28}"</span> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Precio"</span><span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"><</span><span style="color: #800000">FieldRef</span> <span style="color: #ff0000">ID</span><span style="color: #0000ff">="{7715F3DC-46E3-4376-90A8-AB497A63CB02}"</span> <span style="color: #ff0000">Name</span><span style="color: #0000ff">="Perfil"</span><span style="color: #0000ff">/></span><br /> <span style="color: #0000ff"></</span><span style="color: #800000">FieldRefs</span><span style="color: #0000ff">></span><br /> <span style="color: #0000ff"></</span><span style="color: #800000">ContentType</span><span style="color: #0000ff">></span><br /><br /><span style="color: #0000ff"></</span><span style="color: #800000">Elements</span><span style="color: #0000ff">></span> |
Si lo desplegamos tal cual está, las referencias a las columnas de sitio, no funcionarán, y sólo tendrá las columnas del tipo de contenido base:
Mientras que las columnas de sitio sí se han creado correctamente:
Como diría Mou … ¿Por qué?
Pues después de volverme loco revisando el XML y comparándolo con otros ejemplos, encontré que la única diferencia era el comentario que había incluido justo después de:
Si quitamos ese comentario y volvemos a desplegar, el tipo de contenido se crea correctamente. Me preguntaba si tendría que ver que el comentario empezase por el mismo FieldRefs, pero he hecho al misma prueba con:
<!—Hola –>
Y pasaba lo mismo. La cosa es que en otros puntos del XML, sí acepta comentarios, pero dentro de ese nodo, parece que no le gusta ¿?
Espero ahorrarle algo de tiempo a alguien
Saludos!!
Deja un comentario