Note that there are some explanatory texts on larger screens.

plurals
  1. POProblems Transforming EntityObject XML with XSLT
    primarykey
    data
    text
    <p>I have an XML document that I generate from an Entity Framework object. The generated XML looks like this:</p> <p><strong>REPOSTED FULL XML</strong></p> <pre><code>&lt;Task z:Id="i1" xmlns="http://schemas.datacontract.org/2004/07/MCC.DAL" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/"&gt; &lt;EntityKey z:Id="i2" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;a:EntityContainerName&gt;Editorial_MasterEntities&lt;/a:EntityContainerName&gt; &lt;a:EntityKeyValues&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;TaskID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;1670&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;/a:EntityKeyValues&gt; &lt;a:EntitySetName&gt;Task&lt;/a:EntitySetName&gt; &lt;/EntityKey&gt; &lt;FormCOIAns i:nil="true" /&gt; &lt;FormCOIAnsReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/FormCOIAnsReference&gt; &lt;FormCrownLicAns z:Id="i3"&gt; &lt;EntityKey z:Id="i4" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;a:EntityContainerName&gt;Editorial_MasterEntities&lt;/a:EntityContainerName&gt; &lt;a:EntityKeyValues&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;TaskID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;1670&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;/a:EntityKeyValues&gt; &lt;a:EntitySetName&gt;FormCrownLicAns&lt;/a:EntitySetName&gt; &lt;/EntityKey&gt; &lt;CrownAgreement&gt;1&lt;/CrownAgreement&gt; &lt;GovernmentAgency&gt;ASDSADSADSADSA&lt;/GovernmentAgency&gt; &lt;Task z:Ref="i1" /&gt; &lt;TaskID&gt;1670&lt;/TaskID&gt; &lt;TaskReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Ref="i2" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/TaskReference&gt; &lt;/FormCrownLicAns&gt; &lt;FormCrownLicAnsReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Ref="i4" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/FormCrownLicAnsReference&gt; &lt;FormStdLicAns i:nil="true" /&gt; &lt;FormStdLicAnsReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/FormStdLicAnsReference&gt; &lt;FormType i:nil="true" /&gt; &lt;FormTypeReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Id="i5" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;b:EntityContainerName&gt;Editorial_MasterEntities&lt;/b:EntityContainerName&gt; &lt;b:EntityKeyValues&gt; &lt;b:EntityKeyMember&gt; &lt;b:Key&gt;FormType_ID&lt;/b:Key&gt; &lt;b:Value i:type="c:int" xmlns:c="http://www.w3.org/2001/XMLSchema"&gt;3&lt;/b:Value&gt; &lt;/b:EntityKeyMember&gt; &lt;/b:EntityKeyValues&gt; &lt;b:EntitySetName&gt;FormType&lt;/b:EntitySetName&gt; &lt;/a:EntityKey&gt; &lt;/FormTypeReference&gt; &lt;LastModified i:nil="true" /&gt; &lt;Manuscript z:Id="i6"&gt; &lt;EntityKey z:Id="i7" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;a:EntityContainerName&gt;Editorial_MasterEntities&lt;/a:EntityContainerName&gt; &lt;a:EntityKeyValues&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;ManuscriptID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;3000004&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;PubID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;3&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;/a:EntityKeyValues&gt; &lt;a:EntitySetName&gt;Manuscript&lt;/a:EntitySetName&gt; &lt;/EntityKey&gt; &lt;Editor i:nil="true" /&gt; &lt;EditorReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Id="i8" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;b:EntityContainerName&gt;Editorial_MasterEntities&lt;/b:EntityContainerName&gt; &lt;b:EntityKeyValues&gt; &lt;b:EntityKeyMember&gt; &lt;b:Key&gt;EditorID&lt;/b:Key&gt; &lt;b:Value i:type="c:int" xmlns:c="http://www.w3.org/2001/XMLSchema"&gt;3&lt;/b:Value&gt; &lt;/b:EntityKeyMember&gt; &lt;/b:EntityKeyValues&gt; &lt;b:EntitySetName&gt;Editor&lt;/b:EntitySetName&gt; &lt;/a:EntityKey&gt; &lt;/EditorReference&gt; &lt;ManuscriptID&gt;3000004&lt;/ManuscriptID&gt; &lt;ManuscriptStatus i:nil="true" /&gt; &lt;ManuscriptStatusReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey i:nil="true" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/ManuscriptStatusReference&gt; &lt;PubID&gt;3&lt;/PubID&gt; &lt;Publication i:nil="true" /&gt; &lt;PublicationReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Id="i9" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;b:EntityContainerName&gt;Editorial_MasterEntities&lt;/b:EntityContainerName&gt; &lt;b:EntityKeyValues&gt; &lt;b:EntityKeyMember&gt; &lt;b:Key&gt;PubID&lt;/b:Key&gt; &lt;b:Value i:type="c:int" xmlns:c="http://www.w3.org/2001/XMLSchema"&gt;3&lt;/b:Value&gt; &lt;/b:EntityKeyMember&gt; &lt;/b:EntityKeyValues&gt; &lt;b:EntitySetName&gt;Publication&lt;/b:EntitySetName&gt; &lt;/a:EntityKey&gt; &lt;/PublicationReference&gt; &lt;Task&gt; &lt;Task z:Ref="i1" /&gt; &lt;/Task&gt; &lt;Title&gt;test&lt;/Title&gt; &lt;/Manuscript&gt; &lt;ManuscriptReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Ref="i7" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/ManuscriptReference&gt; &lt;MasterPerson z:Id="i10"&gt; &lt;EntityKey z:Id="i11" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;a:EntityContainerName&gt;Editorial_MasterEntities&lt;/a:EntityContainerName&gt; &lt;a:EntityKeyValues&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;MPID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;1380007&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;/a:EntityKeyValues&gt; &lt;a:EntitySetName&gt;MasterPerson&lt;/a:EntitySetName&gt; &lt;/EntityKey&gt; &lt;Comments i:nil="true" /&gt; &lt;Created&gt;2008-01-08T14:14:01.867&lt;/Created&gt; &lt;Do_Not_Use&gt;false&lt;/Do_Not_Use&gt; &lt;Editor /&gt; &lt;FName&gt;tony&lt;/FName&gt; &lt;LName&gt;kim&lt;/LName&gt; &lt;MName /&gt; &lt;MPGUID&gt;C6C28CFFD41A4106B3FDB4CFBBF79B63&lt;/MPGUID&gt; &lt;MPID&gt;1380007&lt;/MPID&gt; &lt;Prefix i:nil="true" /&gt; &lt;Suffix i:nil="true" /&gt; &lt;Task&gt; &lt;Task z:Ref="i1" /&gt; &lt;/Task&gt; &lt;Updated&gt;2008-01-08T14:14:01.867&lt;/Updated&gt; &lt;/MasterPerson&gt; &lt;MasterPersonReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Ref="i11" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/MasterPersonReference&gt; &lt;TaskID&gt;1670&lt;/TaskID&gt; &lt;TaskStatus z:Id="i12"&gt; &lt;EntityKey z:Id="i13" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data"&gt; &lt;a:EntityContainerName&gt;Editorial_MasterEntities&lt;/a:EntityContainerName&gt; &lt;a:EntityKeyValues&gt; &lt;a:EntityKeyMember&gt; &lt;a:Key&gt;TaskStatusID&lt;/a:Key&gt; &lt;a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema"&gt;3&lt;/a:Value&gt; &lt;/a:EntityKeyMember&gt; &lt;/a:EntityKeyValues&gt; &lt;a:EntitySetName&gt;TaskStatus&lt;/a:EntitySetName&gt; &lt;/EntityKey&gt; &lt;Description&gt;Completed&lt;/Description&gt; &lt;Task&gt; &lt;Task z:Ref="i1" /&gt; &lt;/Task&gt; &lt;TaskStatusID&gt;3&lt;/TaskStatusID&gt; &lt;/TaskStatus&gt; &lt;TaskStatusReference xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses"&gt; &lt;a:EntityKey z:Ref="i13" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" /&gt; &lt;/TaskStatusReference&gt; &lt;/Task&gt; </code></pre> <p>This was the stylesheet that was working yesterday, but evidently something changed in my XML - you can see the comps with the local-name vs. XPath.</p> <pre><code> &lt;?xml version='1.0'?&gt; &lt;xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:c="http://www.w3.org/2001/XMLSchema" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:b="http://schemas.datacontract.org/2004/07/System.Data" xmlns="http://schemas.datacontract.org/2004/07/MCC.DAL"&gt; &lt;!--xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" --&gt; &lt;xsl:template match="/*"&gt; &lt;DIV STYLE="font-weight:bold"&gt; Local name:&lt;xsl:value-of select="/*[local-name()='Task']/*[local-name()='MasterPerson']/*[local-name()='FName']" /&gt;&lt;br /&gt; XPath:&lt;xsl:value-of select="/Task/MasterPerson/FName"/&gt; &lt;/DIV&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>The problem I'm having listing out the namespaces is that some of them overlap based on the tag-level context, so that could be the resulting problem. Evidently yesterday I was using a different source XML (argh) or just a different object set altogether. (Either way, if the source changes it shouldn't blow up the XSLT like this.)</p> <p>Right now I'm relegated to using the local-name() approach throughout, but really would like to figure this out.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload