Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
dexter.knudson
Constraint Violating Yak Guru
260 Posts |
Posted - 2009-02-15 : 17:48:28
|
| I would like to replace all occurrences of "<DefaultValues> ....</Values>" in the xml like the text below with an empty string, except where it contains nil, %, All or Printable.For example "<DefaultValues> <Value>ReportDefaultUser</Value> </DefaultValues> <Values> <Value>ReportDefaultUser</Value> </Values>"becomes ""--------------------------<Parameters> <UserProfileState>0</UserProfileState> <Parameter> <Name>user_name</Name> <Type>String</Type> <Nullable>False</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>user name</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>ReportDefaultUser</Value> </DefaultValues> <Values> <Value>ReportDefaultUser</Value> </Values> </Parameter> <Parameter> <Name>job_no</Name> <Type>String</Type> <Nullable>False</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>job no</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>221321</Value> </DefaultValues> <Values> <Value>221321</Value> </Values> </Parameter> <Parameter> <Name>package_id</Name> <Type>String</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>package id</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value nil="True" /> </DefaultValues> <Values> <Value nil="True" /> </Values> </Parameter> <Parameter> <Name>project_component_id</Name> <Type>String</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>project component id</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value nil="True" /> </DefaultValues> <Values> <Value nil="True" /> </Values> </Parameter> <Parameter> <Name>date_supplied_from</Name> <Type>DateTime</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>date supplied from</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>10/01/2005 00:00:00</Value> </DefaultValues> <Values> <Value>10/01/2005 00:00:00</Value> </Values> </Parameter> <Parameter> <Name>date_supplied_to</Name> <Type>DateTime</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>date supplied to</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>10/31/2005 00:00:00</Value> </DefaultValues> <Values> <Value>10/31/2005 00:00:00</Value> </Values> </Parameter> <Parameter> <Name>batch_plant_id</Name> <Type>Integer</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>batch plant id</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value nil="True" /> </DefaultValues> <Values> <Value nil="True" /> </Values> </Parameter> <Parameter> <Name>supplier_id</Name> <Type>Integer</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>supplier id</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>141</Value> </DefaultValues> <Values> <Value>141</Value> </Values> </Parameter> <Parameter> <Name>supplier_mix_code</Name> <Type>String</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>supplier mix code</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>ZN31RTAA</Value> </DefaultValues> <Values> <Value>ZN31RTAA</Value> </Values> </Parameter> <Parameter> <Name>calc_method</Name> <Type>Integer</Type> <Nullable>True</Nullable> <AllowBlank>False</AllowBlank> <MultiValue>False</MultiValue> <UsedInQuery>True</UsedInQuery> <State>MissingValidValue</State> <Prompt>calc method</Prompt> <DynamicPrompt>False</DynamicPrompt> <PromptUser>True</PromptUser> <DefaultValues> <Value>1</Value> </DefaultValues> <Values> <Value>1</Value> </Values> </Parameter></Parameters>-------------------------- |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-02-15 : 21:35:45
|
| have a look at syntax of modify() function in books online. |
 |
|
|
dexter.knudson
Constraint Violating Yak Guru
260 Posts |
Posted - 2009-02-15 : 22:05:07
|
| Hi Visahk,Thanks for your reply. Unfortunately, I don't have the time to learn how to manage xml in SQL Server. I was hoping that someone may have lots of experience with this & be able to give more detail. |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2009-02-16 : 00:41:13
|
try this:-declare @var xml,@n intset @var='<Parameters><UserProfileState>0</UserProfileState><Parameter><Name>user_name</Name><Type>String</Type><Nullable>False</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>user name</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>ReportDefaultUser</Value></DefaultValues><Values><Value>ReportDefaultUser</Value></Values></Parameter><Parameter><Name>job_no</Name><Type>String</Type><Nullable>False</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>job no</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>221321</Value></DefaultValues><Values><Value>221321</Value></Values></Parameter><Parameter><Name>package_id</Name><Type>String</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>package id</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value nil="True" /></DefaultValues><Values><Value nil="True" /></Values></Parameter><Parameter><Name>project_component_id</Name><Type>String</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>project component id</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value nil="True" /></DefaultValues><Values><Value nil="True" /></Values></Parameter><Parameter><Name>date_supplied_from</Name><Type>DateTime</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>date supplied from</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>10/01/2005 00:00:00</Value></DefaultValues><Values><Value>10/01/2005 00:00:00</Value></Values></Parameter><Parameter><Name>date_supplied_to</Name><Type>DateTime</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>date supplied to</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>10/31/2005 00:00:00</Value></DefaultValues><Values><Value>10/31/2005 00:00:00</Value></Values></Parameter><Parameter><Name>batch_plant_id</Name><Type>Integer</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>batch plant id</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value nil="True" /></DefaultValues><Values><Value nil="True" /></Values></Parameter><Parameter><Name>supplier_id</Name><Type>Integer</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>supplier id</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>141</Value></DefaultValues><Values><Value>141</Value></Values></Parameter><Parameter><Name>supplier_mix_code</Name><Type>String</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>supplier mix code</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>ZN31RTAA</Value></DefaultValues><Values><Value>ZN31RTAA</Value></Values></Parameter><Parameter><Name>calc_method</Name><Type>Integer</Type><Nullable>True</Nullable><AllowBlank>False</AllowBlank><MultiValue>False</MultiValue><UsedInQuery>True</UsedInQuery><State>MissingValidValue</State><Prompt>calc method</Prompt><DynamicPrompt>False</DynamicPrompt><PromptUser>True</PromptUser><DefaultValues><Value>1</Value></DefaultValues><Values><Value>1</Value></Values></Parameter></Parameters>'SELECT @varSET @var.modify('delete /Parameters/Parameter/DefaultValues/* ') SELECT @var |
 |
|
|
dexter.knudson
Constraint Violating Yak Guru
260 Posts |
Posted - 2009-02-16 : 16:41:20
|
| Hi Visahk,Thanks again. That looks like a good step in the right direction. Unfortunately I am receiving an error when I open the report after updating the column using the above code: " The input XML does not conform to the schema. XML grammar is described in the API documentation. For XML in reports, refer to Report Definition Language syntax." I think the "<DefaultValues />" & "<Values />" should also be deleted- ie "<DefaultValues /><Values />" becomes "".The XML schema needs to conform to: http://msdn.microsoft.com/en-us/library/ms153649(SQL.90).aspxAlso I will need the conditional logic (Set to "", except where the string contains nil, %, All or Printable) |
 |
|
|
|
|
|
|
|