名前空間を使用して XML を作成していますが、URL は名前空間の "プレフィックス" ではなく XAttribute 要素に記述されています。これが出力として得られるものです。
<xmi:XMI xmlns:uml="http://www.omg.org/spec/UML/20110701"
xmlns:xmi="http://www.omg.org/spec/XMI/20110701">
<xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5" />
<uml:Model xmi:type="{http://www.omg.org/spec/UML/20110701}Model" name="EA_Model">
<packagedElement xmi:type="{http://www.omg.org/spec/UML/20110701}Package" xmi:id="1212" name="Logical View">
<packagedElement xmi:type="{http://www.omg.org/spec/UML/20110701}Class" xmi:id="35798" name="MyClass">
しかし、私はこのようなものを生成する必要があります..
<xmi:XMI xmlns:uml="http://www.omg.org/spec/UML/20110701"
xmlns:xmi="http://www.omg.org/spec/XMI/20110701">
<xmi:Documentation exporter="Enterprise Architect" exporterVersion="6.5" />
<uml:Model xmi:type="uml:Model" name="EA_Model">
<packagedElement xmi:type="uml:Package" xmi:id="1212" name="Logical View">
<packagedElement xmi:type="uml:Class" xmi:id="35798" name="MyClass">
私のコード:
XNamespace uml = "http://www.omg.org/spec/UML/20110701";
XNamespace xmi = "http://www.omg.org/spec/XMI/20110701";
XElement rootElement = new XElement(xmi + "XMI", new XAttribute(XNamespace.Xmlns + "uml", "http://www.omg.org/spec/UML/20110701"), new XAttribute(XNamespace.Xmlns + "xmi", "http://www.omg.org/spec/XMI/20110701"));
doc.Add(rootElement);
rootElement.Add(new XElement(xmi+"Documentation", new XAttribute("exporter", "Enterprise Architect"), new XAttribute("exporterVersion", "6.5")));
XElement modelNode = new XElement(uml + "Model", new XAttribute(xmi + "type", uml + "Model"), new XAttribute("name", "EA_Model"));
rootElement.Add(modelNode);
XElement logicalViewElement = new XElement("packagedElement", new XAttribute(xmi + "type", uml + "Package"), new XAttribute(xmi + "id", project.Id), new XAttribute("name", "Logical View"));
modelNode.Add(logicalViewElement);
Dictionary<string, XElement> entityNodes = new Dictionary<string, XElement>();
foreach (BusinessEntityDataObject entity in project.BusinessEntities)
{
XElement entityElement =
new XElement("packagedElement",
new XAttribute(xmi+"type",uml+"Class"),
new XAttribute(xmi+"id",entity.Id),
new XAttribute("name",entity.Name));