1

Is this a valid xml? online xml validator says it is valid. but I just don't see how this is acceptable? advise?

If you notice the last Material Node has a different child nodes compare to the other Material node.

<?xml version="1.0"?>
<ns1:Message xmlns:ns1="http://google.envelope">
  <ns1:MessageHeader>
    <ns1:MessageId>9fa4d9d1-144d-4283-1491-6fe72c7042c0</ns1:MessageId>
    <ns1:From>ABC</ns1:From>
    <ns1:To>GOOG</ns1:To>
    <ns1:PlantId>0001</ns1:PlantId>
  </ns1:MessageHeader>
  <ns1:MessagePart>
    <ns0:CompletePackingWorkOrder xmlns:ns0="http://Google.Production">
      <SubContractingPurchaseOrderNumber>450000000</SubContractingPurchaseOrderNumber>
      <ProductionDate>2020-09-25T16:47:12-08:00</ProductionDate>
      <ThirdPLWorkOrderNumber>WO00000000</ThirdPLWorkOrderNumber>
      <Plant>0001</Plant>
      <HeaderUserDefined1/>
      <HeaderUserDefined2/>
      <HeaderUserDefined3/>
      <HeaderUserDefined4/>
      <HeaderUserDefined5/>
      <NewPallets>
        <NewPallet>
          <MaterialNumber>00111</MaterialNumber>
          <PalletNumber>1888845001</PalletNumber>
          <ColourCard>PUR</ColourCard>
        </NewPallet>
      </NewPallets>
      <Materials>
        <Material>
          <MaterialNumber>00111</MaterialNumber>
          <PalletNumber>1888845001</PalletNumber>
          <Quantity>91.0000000000</Quantity>
          <UnitOfMeasure>PAC</UnitOfMeasure>
          <StorageLocation>700</StorageLocation>
          <OperationCode>101</OperationCode>
          <ReasonCode/>
          <CancellationFlag>false</CancellationFlag>
          <ItemNo>10</ItemNo>
          <ItemUserDefined1/>
          <ItemUserDefined2/>
          <ItemUserDefined3/>
          <ItemUserDefined4/>
          <ItemUserDefined5/>
        </Material>
        <Material>
          <MaterialNumber>00112</MaterialNumber>
          <PalletNumber>45828760</PalletNumber>
          <Quantity>58.3100000000</Quantity>
          <UnitOfMeasure>PAC</UnitOfMeasure>
          <StorageLocation>700</StorageLocation>
          <OperationCode>543</OperationCode>
          <ReasonCode/>
          <CancellationFlag>false</CancellationFlag>
          <ItemNo>10</ItemNo>
          <ItemUserDefined1/>
          <ItemUserDefined2/>
          <ItemUserDefined3/>
          <ItemUserDefined4/>
          <ItemUserDefined5/>
        </Material>
          <Material>
            <FromMaterialNumber>000000000000063299</FromMaterialNumber>
            <ToMaterialNumber>000000000000063299</ToMaterialNumber>
            <FromPalletNumber>81592826</FromPalletNumber>
            <ToPalletNumber>81592826</ToPalletNumber>
            <Quantity>8</Quantity>
            <UnitOfMeasure>PAC</UnitOfMeasure>
            <FromStorageLocation>300</FromStorageLocation>
            <ToStorageLocation>300</ToStorageLocation>
            <OperationCode>551</OperationCode>
            <ReasonCode>12</ReasonCode>
            <CancellationFlag>false</CancellationFlag>
          </Material>
      </Materials>
    </ns0:CompletePackingWorkOrder>
  </ns1:MessagePart>
</ns1:Message>
BobNoobGuy
  • 1,551
  • 2
  • 30
  • 62
  • 1
    it is syntactically valid, semantically, that depends on the consumer of this. – OldProgrammer Feb 28 '22 at 02:28
  • 1
    You can define schemas where some things are optional, or even where you have a group choice of what elements are under an element. Without a schema, we can't say if it would validate against that or not. As OldProgrammer said, it is valid XML Syntax. – Dijkgraaf Feb 28 '22 at 02:29
  • 1
    XML has two things. (1) XML could be **well-formed** or not, (2) XML could be **valid** against an XML Schema. Without XML Schema it is impossible to know if XML is valid or not. Your XML is well-formed. – Yitzhak Khabinsky Feb 28 '22 at 02:55

0 Answers0