Malheureusement il n'y a pas vraiment de bonnes solutions pour l'une de vos demandes. Voici quelques explications cependant.
Pour le premier élément - le fichier XML de sortie généré par un formulaire doit imiter votre source de données principale. Les champs sont nommés de manière identique et les indentions (imbrication) doivent correspondre aux dossiers. Infopath met un tag ou deux en haut, mais ceux-ci sont nécessaires, et peuvent généralement être ignorés lors de la lecture du XML sans dérouter personne.
Si vous avez besoin de quelque chose de plus lisible, vous devrez écrire du code pour sortir un fichier formaté comme vous le souhaitez. Cela va introduire un tout autre ensemble de problèmes car le formulaire devra avoir un niveau de confiance plus élevé pour écrire dans un fichier local. Vous devriez éviter cette route si possible. Considérez également pourquoi vous avez besoin de XML pour être plus lisible - XML est censé être un format pour le stockage/transfert de données uniforme, pas un remplacement pour un document Word. Les utilisateurs ne peuvent pas simplement ouvrir le fichier XML enregistré dans Infopath et voir les données dans le bon format que vous avez déjà configuré (ou certains utilisateurs n'ont-ils pas de droits sur le modèle de formulaire).
Pour le deuxième élément - Infopath stocke chaque élément de données affiché à l'écran en tant que champ. Ceci est particulièrement gênant dans des situations telles que celle que vous décrivez ou les champs calculés (pourquoi stocker le calcul - il suffit de stocker les champs de base et de recalculer l'affichage). La meilleure solution pour cela est de mettre tous vos "faux" champs dans un dossier différent dans la source de données (appelez-le "TrivialFields" ou quelque chose comme ça). Tout code qui analyse le XML peut simplement l'ignorer et tous les utilisateurs qui doivent lire le XML peuvent facilement ignorer cette section.
Une alternative qui représente une quantité importante de travail par rapport aux résultats que vous obtenez est d'écrire du code pour faire le travail que vous essayez de faire avec le champ actuellement. Vous pouvez également écrire du code pour effacer le champ à chaque fois que le formulaire est enregistré. Le champ existera donc mais sera toujours vide dans le formulaire enregistré.
Il semble que vos deux questions concernent un utilisateur final lisant la source XML d'un formulaire enregistré. Au lieu de descendre ce chemin, vous devriez laisser le XML être ce qu'il est et laisser l'utilisateur afficher/imprimer depuis InfoPath. Vous pouvez ensuite contrôler le formatage et l'afficher explicitement. Tout code backend que vous écrivez pour traiter le XML ne se soucie pas de l'existence de champs supplémentaires ou d'un formatage confus - c'est du code après tout.